diff options
author | André Erdmann <dywi@mailerd.de> | 2012-07-02 18:47:24 +0200 |
---|---|---|
committer | André Erdmann <dywi@mailerd.de> | 2012-07-02 18:47:24 +0200 |
commit | 5092211ac965d6f24d1a665c7aa7ce0ee292a4f1 (patch) | |
tree | 479276ef61a9abe36b38e6a64640725e5aa40217 /roverlay | |
parent | fix export_rule for simple dep rules (diff) | |
download | R_overlay-5092211ac965d6f24d1a665c7aa7ce0ee292a4f1.tar.gz R_overlay-5092211ac965d6f24d1a665c7aa7ce0ee292a4f1.tar.bz2 R_overlay-5092211ac965d6f24d1a665c7aa7ce0ee292a4f1.zip |
depres channels: lock id generator usage
modified: roverlay/depres/communication.py
Diffstat (limited to 'roverlay')
-rw-r--r-- | roverlay/depres/communication.py | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/roverlay/depres/communication.py b/roverlay/depres/communication.py index 14d6193..daeb79e 100644 --- a/roverlay/depres/communication.py +++ b/roverlay/depres/communication.py @@ -6,13 +6,11 @@ import threading import sys def channel_counter (): - lock = threading.Lock() last_id = long ( -1 ) if sys.version_info < ( 3, ) else int ( -1 ) while True: - with lock: - last_id += 1 - yield last_id + last_id += 1 + yield last_id class DependencyResolverListener ( object ): @@ -59,6 +57,7 @@ class DependencyResolverListener ( object ): class DependencyResolverChannel ( object ): + id_gen_lock = threading.Lock() id_generator = channel_counter() def __init__ ( self, main_resolver ): @@ -73,7 +72,8 @@ class DependencyResolverChannel ( object ): #super ( DependencyResolverChannel, self ) . __init__ () # channel identifiers must be unique even when the channel has been # deleted (id does not guarantee that) - self.ident = next ( DependencyResolverChannel.id_generator ) + with DependencyResolverChannel.id_gen_lock: + self.ident = next ( DependencyResolverChannel.id_generator ) self._depres_master = main_resolver # --- end of __init__ (...) --- |