[ https://issues.apache.org/jira/browse/ZOOKEEPER-3186?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16683331#comment-16683331 ]
cheng pan commented on ZOOKEEPER-3186: -------------------------------------- [~maoling] :(Sorry, I forgot to submit it, now you can see it > 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 > Priority: Major > > 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)