bench.sh: run dekker-fences
[model-checker-benchmarks.git] / barrier / barrier.h
index 871e10fd5feb595826f181d60bc5e31c0be34a29..dd5d39c0c7d9f56f112a35bb2c7befed1e23cdd9 100644 (file)
@@ -2,7 +2,10 @@
 
 class spinning_barrier {
  public:
-       spinning_barrier (unsigned int n) : n_ (n), nwait_ (0), step_(0) {}
+       spinning_barrier (unsigned int n) : n_ (n) {
+               nwait_ = 0;
+               step_ = 0;
+       }
 
        bool wait() {
                unsigned int step = step_.load ();
@@ -15,7 +18,7 @@ class spinning_barrier {
                } else {
                        /* Run in circles and scream like a little girl.  */
                        while (step_.load () == step)
-                               ;
+                               thrd_yield();
                        return false;
                }
        }