X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=mpmc-queue%2Ftestcase2.cc;h=a55e8c406de93079cc13e473b9760083f3f2b53d;hb=d634d19b6134309ed0893c6fd58d815cbafecd16;hp=071c55d79927d4417698b944916bff02e6bdf69d;hpb=b597b4f413812a6dcba5ef6823a5fce07b2cbe5c;p=model-checker-benchmarks.git diff --git a/mpmc-queue/testcase2.cc b/mpmc-queue/testcase2.cc index 071c55d..a55e8c4 100644 --- a/mpmc-queue/testcase2.cc +++ b/mpmc-queue/testcase2.cc @@ -8,10 +8,13 @@ #include "mpmc-queue-wildcard.h" +atomic_int x; + void threadA(struct mpmc_boundq_1_alt *queue) { int32_t *bin = queue->write_prepare(); - store_32(bin, 1); + //store_32(bin, 1); + x.store(1, memory_order_relaxed); queue->write_publish(); } @@ -19,7 +22,8 @@ void threadB(struct mpmc_boundq_1_alt *queue) { int32_t *bin; while ((bin = queue->read_fetch()) != NULL) { - printf("Read: %d\n", load_32(bin)); + x.load(memory_order_relaxed); + //printf("Read: %d\n", load_32(bin)); queue->read_consume(); } } @@ -27,15 +31,17 @@ void threadB(struct mpmc_boundq_1_alt *queue) void threadC(struct mpmc_boundq_1_alt *queue) { int32_t *bin = queue->write_prepare(); - store_32(bin, 1); + //store_32(bin, 1); + x.store(1, memory_order_relaxed); + queue->write_publish(); while ((bin = queue->read_fetch()) != NULL) { - printf("Read: %d\n", load_32(bin)); + x.load(memory_order_relaxed); + //printf("Read: %d\n", load_32(bin)); queue->read_consume(); } -} - +} #define MAXREADERS 3 #define MAXWRITERS 3 #define MAXRDWR 3 @@ -110,6 +116,8 @@ int user_main(int argc, char **argv) //process_params(argc, argv); printf("%d reader(s), %d writer(s)\n", readers, writers); + + x.store(0); #ifndef CONFIG_MPMC_NO_INITIAL_ELEMENT printf("Adding initial element\n"); int32_t *bin = queue.write_prepare();