You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ma...@apache.org on 2010/03/06 06:33:29 UTC

svn commit: r919706 - in /hadoop/zookeeper/trunk: CHANGES.txt src/c/src/zookeeper.c

Author: mahadev
Date: Sat Mar  6 05:33:29 2010
New Revision: 919706

URL: http://svn.apache.org/viewvc?rev=919706&view=rev
Log:
ZOOKEEPER-622. Test for pending watches in send_set_watches should be moved (ben and steven via mahadev)

Modified:
    hadoop/zookeeper/trunk/CHANGES.txt
    hadoop/zookeeper/trunk/src/c/src/zookeeper.c

Modified: hadoop/zookeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/CHANGES.txt?rev=919706&r1=919705&r2=919706&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/CHANGES.txt (original)
+++ hadoop/zookeeper/trunk/CHANGES.txt Sat Mar  6 05:33:29 2010
@@ -243,6 +243,9 @@
   ZOOKEEPER-687. LENonterminatetest fails on some machines. (mahadev)
 
   ZOOKEEPER-681. Minor doc issue re unset maxClientCnxns (phunt via mahadev)
+
+  ZOOKEEPER-622. Test for pending watches in send_set_watches should be moved
+  (ben and steven via mahadev)
  
 IMPROVEMENTS:
   ZOOKEEPER-473. cleanup junit tests to eliminate false positives due to

Modified: hadoop/zookeeper/trunk/src/c/src/zookeeper.c
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/c/src/zookeeper.c?rev=919706&r1=919705&r2=919706&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/src/c/src/zookeeper.c (original)
+++ hadoop/zookeeper/trunk/src/c/src/zookeeper.c Sat Mar  6 05:33:29 2010
@@ -1189,17 +1189,22 @@
     struct SetWatches req;
     int rc;
 
+    req.relativeZxid = zh->last_zxid;
+    req.dataWatches.data = collect_keys(zh->active_node_watchers, &req.dataWatches.count);
+    req.existWatches.data = collect_keys(zh->active_exist_watchers, &req.existWatches.count);
+    req.childWatches.data = collect_keys(zh->active_child_watchers, &req.childWatches.count);
+
     // return if there are no pending watches
     if (!req.dataWatches.count && !req.existWatches.count &&
         !req.childWatches.count) {
+        free_key_list(req.dataWatches.data, req.dataWatches.count);
+        free_key_list(req.existWatches.data, req.existWatches.count);
+        free_key_list(req.childWatches.data, req.childWatches.count);
         return ZOK;
     }
 
+
     oa = create_buffer_oarchive();
-    req.relativeZxid = zh->last_zxid;
-    req.dataWatches.data = collect_keys(zh->active_node_watchers, &req.dataWatches.count);
-    req.existWatches.data = collect_keys(zh->active_exist_watchers, &req.existWatches.count);
-    req.childWatches.data = collect_keys(zh->active_child_watchers, &req.childWatches.count);
     rc = serialize_RequestHeader(oa, "header", &h);
     rc = rc < 0 ? rc : serialize_SetWatches(oa, "req", &req);
     /* add this buffer to the head of the send queue */