aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Erdmann <dywi@mailerd.de>2012-07-02 18:47:24 +0200
committerAndré Erdmann <dywi@mailerd.de>2012-07-02 18:47:24 +0200
commit5092211ac965d6f24d1a665c7aa7ce0ee292a4f1 (patch)
tree479276ef61a9abe36b38e6a64640725e5aa40217 /roverlay
parentfix export_rule for simple dep rules (diff)
downloadR_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.py10
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__ (...) ---