[ 
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)

Reply via email to