From: Brian Norris Date: Tue, 9 Oct 2012 23:23:40 +0000 (-0700) Subject: barrier: add test driver, Makefile X-Git-Tag: pldi2013~62 X-Git-Url: http://demsky.eecs.uci.edu/git/?p=model-checker-benchmarks.git;a=commitdiff_plain;h=66c6a6bc064c305840027fd6141ea14276c928c2 barrier: add test driver, Makefile My own additions to test barrier.h --- diff --git a/barrier/Makefile b/barrier/Makefile new file mode 100644 index 0000000..34dd9df --- /dev/null +++ b/barrier/Makefile @@ -0,0 +1,11 @@ +include ../benchmarks.mk + +BIN = barrier + +all: barrier + +barrier: barrier.cc barrier.h + $(CXX) -o $@ $< $(CPPFLAGS) $(LDFLAGS) + +clean: + rm -f $(BIN) *.o diff --git a/barrier/barrier.cc b/barrier/barrier.cc new file mode 100644 index 0000000..093da10 --- /dev/null +++ b/barrier/barrier.cc @@ -0,0 +1,35 @@ +#include +#include + +#include "barrier.h" + +#include "librace.h" + +spinning_barrier *barr; +int var = 0; + +void threadA(void *arg) +{ + store_32(&var, 1); + barr->wait(); +} + +void threadB(void *arg) +{ + barr->wait(); + printf("var = %d\n", load_32(&var)); +} + +int user_main(int argc, char **argv) +{ + thrd_t t2, t3; + + barr = new spinning_barrier(2); + + thrd_create(&t2, &threadA, NULL); + thrd_create(&t3, &threadB, NULL); + thrd_join(t2); + thrd_join(t3); + + return 0; +}