summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorelie <elie>2013-09-21 11:41:27 +0000
committerelie <elie>2013-09-21 11:41:27 +0000
commit508cfc3f597fce267aa0fe292822e7c201cbe03b (patch)
tree559262c3f94cbf3e84d38b4bd165442338a38e94 /examples
parent83b865fc53f0435a4c5c12a314c416cca1b6b058 (diff)
downloadpysnmp-508cfc3f597fce267aa0fe292822e7c201cbe03b.tar.gz
workaround for missing Queue module features at 2.4
Diffstat (limited to 'examples')
-rw-r--r--examples/v3arch/oneliner/manager/cmdgen/get-threaded-multiple-transports-and-protocols.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/examples/v3arch/oneliner/manager/cmdgen/get-threaded-multiple-transports-and-protocols.py b/examples/v3arch/oneliner/manager/cmdgen/get-threaded-multiple-transports-and-protocols.py
index b49572a..cf066e7 100644
--- a/examples/v3arch/oneliner/manager/cmdgen/get-threaded-multiple-transports-and-protocols.py
+++ b/examples/v3arch/oneliner/manager/cmdgen/get-threaded-multiple-transports-and-protocols.py
@@ -69,7 +69,8 @@ class Worker(Thread):
**{ 'lookupNames': True, 'lookupValues': True }
)
)
- self.requests.task_done()
+ if hasattr(self.requests, 'task_done'): # 2.5+
+ self.requests.task_done()
class ThreadPool:
def __init__(self, num_threads):
@@ -83,7 +84,15 @@ class ThreadPool:
def getResponses(self): return self.responses
- def waitCompletion(self): self.requests.join()
+ def waitCompletion(self):
+ if hasattr(self.requests, 'join'):
+ self.requests.join() # 2.5+
+ else:
+ from time import sleep
+ # this is a lame substitute for missing .join()
+ # adding an explicit synchronization might be a better solution
+ while not self.requests.empty():
+ sleep(1)
pool = ThreadPool(3)