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 ();
} else {
/* Run in circles and scream like a little girl. */
while (step_.load () == step)
- ;
+ thrd_yield();
return false;
}
}