Andrew Kornev commented on ZOOKEEPER-39:

The watcher processing is now done in multiple steps: 
1) when application issues a zokeeper query with watcher enabled, a temporary 
watcher registration is created and stored along with the completion entry in 
the completion queue.
2) upon succesful response from the server, the watcher registration is moved 
from the completion queue to the watcher object map. If the server returns an 
error the watcher registration is discarded.
3) when a watch event arrives, the client uses the watcher map to determine if 
there are watchers set on the znode (using the znode path as the key). It then 
calles the watcher callback passing in the watcher context along with the znode 
path and the event type info.
4) the watcher object is deleted from the map prior to calling the application 
watcher in the step 3)

> Use Watcher objects rather than boolean on read operations
> ----------------------------------------------------------
>                 Key: ZOOKEEPER-39
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-39
>             Project: Zookeeper
>          Issue Type: New Feature
>          Components: c client, java client
>            Reporter: Patrick Hunt
>            Assignee: Andrew Kornev
>             Fix For: 3.0.0
>         Attachments: ZOOKEEPER-39.patch
> Moved from SourceForge to Apache.
> http://sourceforge.net/tracker/index.php?func=detail&aid=1962501&group_id=209147&atid=1008547

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

Reply via email to