diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-09-17 09:38:26 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-09-17 09:38:26 +0000 |
commit | 90792db9d4f3ffac6dc7a5a72345bbadfe55ee46 (patch) | |
tree | 3bcf378c62138937f796eee345137e9198072ea7 | |
parent | 0cdf7a8d8cdaf26f69f6a05ad039c28603fde80a (diff) | |
parent | 3f08c3e9331f9ab42e6f1f6ec73e85f3212de6c7 (diff) | |
download | tooz-90792db9d4f3ffac6dc7a5a72345bbadfe55ee46.tar.gz |
Merge "Use a thread safe deque instead of a queue"
-rw-r--r-- | tooz/drivers/zookeeper.py | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/tooz/drivers/zookeeper.py b/tooz/drivers/zookeeper.py index a164458..5585743 100644 --- a/tooz/drivers/zookeeper.py +++ b/tooz/drivers/zookeeper.py @@ -60,7 +60,7 @@ class BaseZooKeeperDriver(coordination.CoordinationDriver): raise coordination.ToozError("operation error: %s" % (e)) self._group_members = collections.defaultdict(set) - self._watchers = six.moves.queue.Queue() + self._watchers = collections.deque() self._leader_locks = {} def stop(self): @@ -229,7 +229,7 @@ class KazooDriver(BaseZooKeeperDriver): # Copy function in case it's removed later from the # hook list hooks = copy.copy(self._hooks_join_group[group_id]) - self._watchers.put( + self._watchers.append( lambda: hooks.run( coordination.MemberJoinedGroup( group_id, @@ -239,7 +239,7 @@ class KazooDriver(BaseZooKeeperDriver): # Copy function in case it's removed later from the # hook list hooks = copy.copy(self._hooks_leave_group[group_id]) - self._watchers.put( + self._watchers.append( lambda: hooks.run( coordination.MemberLeftGroup( group_id, @@ -338,11 +338,8 @@ class KazooDriver(BaseZooKeeperDriver): def run_watchers(self): ret = [] - while True: - try: - cb = self._watchers.get(block=False) - except six.moves.queue.Empty: - break + while self._watchers: + cb = self._watchers.popleft() ret.extend(cb()) for group_id in six.iterkeys(self._hooks_elected_leader): |