val wait : t ‑> unitwait b waits for barrier b to be activated by activate b.
All threads calling this wait until activate b is called.
If b is already activated, wait b does nothing.
val activated : t ‑> boolactivated b returns true iff activate b was called, and reset b
was not called since. In other words, activated b = true means
wait b will not block.