[svn r63208] moving example to top-level dir.

--HG--
branch : trunk
This commit is contained in:
hpk 2009-03-22 18:08:31 +01:00
parent 3305a0e3db
commit c81ffeb027
7 changed files with 37 additions and 0 deletions

View File

@ -0,0 +1,37 @@
"""
example
reading results from possibly blocking code running in sub processes.
"""
import py
NUM_PROCESSES = 5
channels = []
for i in range(NUM_PROCESSES):
gw = py.execnet.PopenGateway() # or use SSH or socket gateways
channel = gw.remote_exec("""
import time
secs = channel.receive()
time.sleep(secs)
channel.send("waited %d secs" % secs)
""")
channels.append(channel)
print "*** instantiated subprocess", gw
mc = py.execnet.MultiChannel(channels)
queue = mc.make_receive_queue()
print "***", "verifying that timeout on receiving results from blocked subprocesses works"
try:
queue.get(timeout=1.0)
except Exception:
pass
print "*** sending subprocesses some data to have them unblock"
mc.send_each(1)
print "*** receiving results asynchronously"
for i in range(NUM_PROCESSES):
channel, result = queue.get(timeout=2.0)
print "result", channel.gateway, result