Devs, I was working on CURATOR-233 and I realized that I don't really understand the semantics of the DistributedDoubleBarrier when there are more clients than the given member quantity. Note that I'm not asking about what the code currently does (because I suspect it has a few inconsistencies) but what it should do according to the API contract.
Let's suppose I create a DDB with n=2. client1.enter() // blocks until at least 2 clients enter client2.enter() // returns immediately client3.enter() // returns immediately? client3.leave() // blocks until all clients leave? client2.leave() // blocks until all clients leave? client4.enter() // imagine a straggling thread, no idea what should even happen here Mike
