cheng pan created ZOOKEEPER-3186:
------------------------------------

             Summary: bug in barrier example code
                 Key: ZOOKEEPER-3186
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3186
             Project: ZooKeeper
          Issue Type: Bug
          Components: documentation
            Reporter: cheng pan


the code given in the documentation
{code:java}
while (true) {
    synchronized (mutex) {
        List<String> list = zk.getChildren(root, true);
        if (list.size() < size) {
            mutex.wait();
        } else {
            return true;
        }
    }
}
{code}
When some nodes are not ready, the code calls mutex.wait() and waits for the 
watcher event to call mutex.notify() to wake it up. The problem is, we can't 
guarantee that mutex.notify() will definitely happen after mutex.wait(), which 
will cause client is stuck.
The solution might be CountDownLatch?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to