You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gs...@apache.org on 2019/11/22 14:22:44 UTC

[qpid-dispatch] branch master updated: DISPATCH-1491: use sets rather than iterating over lists

This is an automated email from the ASF dual-hosted git repository.

gsim pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git


The following commit(s) were added to refs/heads/master by this push:
     new 5b3664f  DISPATCH-1491: use sets rather than iterating over lists
5b3664f is described below

commit 5b3664f6e774fadc90ecdfe15d898e316e4dd8cd
Author: Gordon Sim <gs...@redhat.com>
AuthorDate: Thu Nov 21 16:51:13 2019 +0000

    DISPATCH-1491: use sets rather than iterating over lists
---
 python/qpid_dispatch_internal/router/mobile.py | 35 +++++++++++++-------------
 1 file changed, 17 insertions(+), 18 deletions(-)

diff --git a/python/qpid_dispatch_internal/router/mobile.py b/python/qpid_dispatch_internal/router/mobile.py
index b4c73f9..e6ee48e 100644
--- a/python/qpid_dispatch_internal/router/mobile.py
+++ b/python/qpid_dispatch_internal/router/mobile.py
@@ -39,9 +39,9 @@ class MobileAddressEngine(object):
         self.node_tracker  = node_tracker
         self.id            = self.container.id
         self.mobile_seq    = 0
-        self.local_addrs   = []
-        self.added_addrs   = []
-        self.deleted_addrs = []
+        self.local_addrs   = set([])
+        self.added_addrs   = set([])
+        self.deleted_addrs = set([])
         self.sent_deltas   = {}
         self.treatments    = {}
 
@@ -54,7 +54,7 @@ class MobileAddressEngine(object):
         if len(self.added_addrs) > 0 or len(self.deleted_addrs) > 0:
             self.mobile_seq += 1
             hints = [self.treatments[a] for a in self.added_addrs]
-            msg = MessageMAU(None, self.id, self.mobile_seq, self.added_addrs, self.deleted_addrs, _hints=hints)
+            msg = MessageMAU(None, self.id, self.mobile_seq, list(self.added_addrs), list(self.deleted_addrs), _hints=hints)
 
             self.sent_deltas[self.mobile_seq] = msg
             if len(self.sent_deltas) > MAX_KEPT_DELTAS:
@@ -62,11 +62,10 @@ class MobileAddressEngine(object):
 
             self.container.send('amqp:/_topo/0/all/qdrouter.ma', msg)
             self.container.log_ma(LOG_TRACE, "SENT: %r" % msg)
-            self.local_addrs.extend(self.added_addrs)
-            for addr in self.deleted_addrs:
-                self.local_addrs.remove(addr)
-            self.added_addrs   = []
-            self.deleted_addrs = []
+            self.local_addrs.update(self.added_addrs)
+            self.local_addrs.difference_update(self.deleted_addrs)
+            self.added_addrs.clear()
+            self.deleted_addrs.clear()
         return self.mobile_seq
 
 
@@ -74,11 +73,11 @@ class MobileAddressEngine(object):
         """
         """
         self.treatments[addr] = treatment
-        if self.local_addrs.count(addr) == 0:
-            if self.added_addrs.count(addr) == 0:
-                self.added_addrs.append(addr)
+        if addr not in self.local_addrs:
+            if addr not in self.added_addrs:
+                self.added_addrs.add(addr)
         else:
-            if self.deleted_addrs.count(addr) > 0:
+            if addr in self.deleted_addrs:
                 self.deleted_addrs.remove(addr)
 
 
@@ -86,11 +85,11 @@ class MobileAddressEngine(object):
         """
         """
         del self.treatments[addr]
-        if self.local_addrs.count(addr) > 0:
-            if self.deleted_addrs.count(addr) == 0:
-                self.deleted_addrs.append(addr)
+        if addr in self.local_addrs:
+            if addr not in self.deleted_addrs:
+                self.deleted_addrs.add(addr)
         else:
-            if self.added_addrs.count(addr) > 0:
+            if addr in self.added_addrs:
                 self.added_addrs.remove(addr)
 
 
@@ -163,7 +162,7 @@ class MobileAddressEngine(object):
         ##
         ## The peer needs to be sent an absolute update with the whole address list
         ##
-        smsg = MessageMAU(None, self.id, self.mobile_seq, None, None, self.local_addrs)
+        smsg = MessageMAU(None, self.id, self.mobile_seq, None, None, list(self.local_addrs))
         self.container.send('amqp:/_topo/0/%s/qdrouter.ma' % msg.id, smsg)
         self.container.log_ma(LOG_TRACE, "SENT: %r" % smsg)
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org