From: Brian Norris Date: Thu, 8 Nov 2012 17:54:34 +0000 (-0800) Subject: mpmc-queue: remove duplicate source files X-Git-Tag: pldi2013~10 X-Git-Url: http://plrg.eecs.uci.edu/git/?p=model-checker-benchmarks.git;a=commitdiff_plain;h=1c06f3210549c537772708197b8b6341f6fafe35;hp=ca8555d0e02fb0b6e37bfbff4adee760c2248efb;ds=sidebyside mpmc-queue: remove duplicate source files --- diff --git a/mpmc-queue/mpmc-1r2w.cc b/mpmc-queue/mpmc-1r2w.cc deleted file mode 100644 index 78c9597..0000000 --- a/mpmc-queue/mpmc-1r2w.cc +++ /dev/null @@ -1,101 +0,0 @@ -#include -#include -#include -#include -#include - -#include - -#include "mpmc-queue.h" - -void threadA(struct mpmc_boundq_1_alt *queue) -{ - int32_t *bin = queue->write_prepare(); - store_32(bin, 1); - queue->write_publish(); -} - -void threadB(struct mpmc_boundq_1_alt *queue) -{ - int32_t *bin; - while (bin = queue->read_fetch()) { - printf("Read: %d\n", load_32(bin)); - queue->read_consume(); - } -} - -#define MAXREADERS 3 -#define MAXWRITERS 3 - -int readers = 1, writers = 2; - -void print_usage() -{ - printf("Error: use the following options\n" - " -r Choose number of reader threads\n" - " -w Choose number of writer threads\n"); - exit(EXIT_FAILURE); -} - -void process_params(int argc, char **argv) -{ - const char *shortopts = "hr:w:"; - int opt; - bool error = false; - - while (!error && (opt = getopt(argc, argv, shortopts)) != -1) { - switch (opt) { - case 'h': - print_usage(); - break; - case 'r': - readers = atoi(optarg); - break; - case 'w': - writers = atoi(optarg); - break; - default: /* '?' */ - error = true; - break; - } - } - - if (writers < 1 || writers > MAXWRITERS) - error = true; - if (readers < 1 || readers > MAXREADERS) - error = true; - - if (error) - print_usage(); -} - -int user_main(int argc, char **argv) -{ - struct mpmc_boundq_1_alt queue; - thrd_t A[MAXWRITERS], B[MAXREADERS]; - - /* Note: optarg() / optind is broken in model-checker - workaround is - * to just copy&paste this test a few times */ - //process_params(argc, argv); - printf("%d reader(s), %d writer(s)\n", readers, writers); - - int32_t *bin = queue.write_prepare(); - store_32(bin, 17); - queue.write_publish(); - - printf("Start threads\n"); - - for (int i = 0; i < writers; i++) - thrd_create(&A[i], (thrd_start_t)&threadA, &queue); - for (int i = 0; i < readers; i++) - thrd_create(&B[i], (thrd_start_t)&threadB, &queue); - - for (int i = 0; i < writers; i++) - thrd_join(A[i]); - for (int i = 0; i < readers; i++) - thrd_join(B[i]); - - printf("Threads complete\n"); - - return 0; -} diff --git a/mpmc-queue/mpmc-2r1w.cc b/mpmc-queue/mpmc-2r1w.cc deleted file mode 100644 index 8fc4652..0000000 --- a/mpmc-queue/mpmc-2r1w.cc +++ /dev/null @@ -1,101 +0,0 @@ -#include -#include -#include -#include -#include - -#include - -#include "mpmc-queue.h" - -void threadA(struct mpmc_boundq_1_alt *queue) -{ - int32_t *bin = queue->write_prepare(); - store_32(bin, 1); - queue->write_publish(); -} - -void threadB(struct mpmc_boundq_1_alt *queue) -{ - int32_t *bin; - while (bin = queue->read_fetch()) { - printf("Read: %d\n", load_32(bin)); - queue->read_consume(); - } -} - -#define MAXREADERS 3 -#define MAXWRITERS 3 - -int readers = 2, writers = 1; - -void print_usage() -{ - printf("Error: use the following options\n" - " -r Choose number of reader threads\n" - " -w Choose number of writer threads\n"); - exit(EXIT_FAILURE); -} - -void process_params(int argc, char **argv) -{ - const char *shortopts = "hr:w:"; - int opt; - bool error = false; - - while (!error && (opt = getopt(argc, argv, shortopts)) != -1) { - switch (opt) { - case 'h': - print_usage(); - break; - case 'r': - readers = atoi(optarg); - break; - case 'w': - writers = atoi(optarg); - break; - default: /* '?' */ - error = true; - break; - } - } - - if (writers < 1 || writers > MAXWRITERS) - error = true; - if (readers < 1 || readers > MAXREADERS) - error = true; - - if (error) - print_usage(); -} - -int user_main(int argc, char **argv) -{ - struct mpmc_boundq_1_alt queue; - thrd_t A[MAXWRITERS], B[MAXREADERS]; - - /* Note: optarg() / optind is broken in model-checker - workaround is - * to just copy&paste this test a few times */ - //process_params(argc, argv); - printf("%d reader(s), %d writer(s)\n", readers, writers); - - int32_t *bin = queue.write_prepare(); - store_32(bin, 17); - queue.write_publish(); - - printf("Start threads\n"); - - for (int i = 0; i < writers; i++) - thrd_create(&A[i], (thrd_start_t)&threadA, &queue); - for (int i = 0; i < readers; i++) - thrd_create(&B[i], (thrd_start_t)&threadB, &queue); - - for (int i = 0; i < writers; i++) - thrd_join(A[i]); - for (int i = 0; i < readers; i++) - thrd_join(B[i]); - - printf("Threads complete\n"); - - return 0; -}