[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13872334#comment-13872334
 ] 

Raul Gutierrez Segales commented on ZOOKEEPER-442:
--------------------------------------------------

Sorry guys to distract you from fixing the leak and the tests but there's one 
small code smell (imho) in the last version of the patch:

{noformat}
+                            if (watchers.size() <= 0) {
+                                pathVsWatcher.remove(path);
+                            }
{noformat}

watchers.size() == 0 should suffice, *if* (as pointed out by Patrick) all our 
access around watchers is synchronized. We don't see to be enforcing that so we 
might have some races around that. 

> need a way to remove watches that are no longer of interest
> -----------------------------------------------------------
>
>                 Key: ZOOKEEPER-442
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-442
>             Project: ZooKeeper
>          Issue Type: Sub-task
>          Components: java client, server
>            Reporter: Benjamin Reed
>            Assignee: Rakesh R
>            Priority: Critical
>             Fix For: 3.5.0
>
>         Attachments: Remove Watch API.pdf, ZOOKEEPER-442.patch, 
> ZOOKEEPER-442.patch, ZOOKEEPER-442.patch, ZOOKEEPER-442.patch, 
> ZOOKEEPER-442.patch, ZOOKEEPER-442.patch, ZOOKEEPER-442.patch, 
> ZOOKEEPER-442.patch, ZOOKEEPER-442.patch, ZOOKEEPER-442.patch, 
> ZOOKEEPER-442.patch, ZOOKEEPER-442.patch, ZOOKEEPER-442.patch, 
> ZOOKEEPER-442.patch
>
>
> currently the only way a watch cleared is to trigger it. we need a way to 
> enumerate the outstanding watch objects, find watch events the objects are 
> watching for, and remove interests in an event.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to