Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Schwartz <bens@alum.mit.edu>2008-02-10 06:25:07 (GMT)
committer Benjamin Schwartz <bens@alum.mit.edu>2008-02-10 06:25:07 (GMT)
commit7a0e3dca4207c6c41431efecefae5803a08f7dea (patch)
treef051ab6579fdf03c422e756f5dfed5cd805864b1
parente6a4c05eb037bc1641f5a996c12f2efedf40e481 (diff)
Fix AddOnlySet bugs
-rw-r--r--dobject.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/dobject.py b/dobject.py
index 75f010b..b3d5ce0 100644
--- a/dobject.py
+++ b/dobject.py
@@ -505,9 +505,13 @@ class AddOnlySet:
is perfectly coherent, since the order in which elements are added is not
important.
"""
- def __init__(self, handler, initset = set(), translator=empty_translator):
+ def __init__(self, handler, initset = None, translator=empty_translator):
self._logger = logging.getLogger('dobject.AddOnlySet')
- self._set = initset
+ if initset is None:
+ self._set = set()
+ else:
+ self._set = initset
+
self._lock = threading.Lock()
self._trans = translator
@@ -577,10 +581,10 @@ class AddOnlySet:
present, it will be broadcast to all other users."""
if y not in self._set:
self._set.add(y)
- self._send((y))
+ self._send((y,))
def _send(self, els):
- self._handler.send((self._trans(el, True) for el in els))
+ self._handler.send(dbus.Array([self._trans(el, True) for el in els]))
def _net_update(self, y):
s = set(y)
@@ -593,7 +597,7 @@ class AddOnlySet:
self._net_update((self._trans(el, False) for el in msg))
def get_history(self):
- return (self._trans(el, True) for el in self._set)
+ return dbus.Array([self._trans(el, True) for el in self._set])
add_history = receive_message