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)