From 66c6a6bc064c305840027fd6141ea14276c928c2 Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Tue, 9 Oct 2012 16:23:40 -0700 Subject: [PATCH] barrier: add test driver, Makefile My own additions to test barrier.h --- barrier/Makefile | 11 +++++++++++ barrier/barrier.cc | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 barrier/Makefile create mode 100644 barrier/barrier.cc 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; +} -- 2.34.1