Implementing an N process barrier using semaphores

This is well presented in The Little Book of Semaphores. n = the number of threads count = 0 mutex = Semaphore(1) barrier = Semaphore(0) mutex.wait() count = count + 1 mutex.signal() if count == n: barrier.signal() # unblock ONE thread barrier.wait() barrier.signal() # once we are unblocked, it’s our duty to unblock the next … Read more