Can someone please explain why I only get this output? I have this example code from lindypy documents and I only get the output below which was not expected.
import os
import time
from lindypy import *
def worker(ts):
print 'worker', os.getpid(), 'start'
while True:
# we are interested in any tuple of four integers
t = ts.inp((int, int, int, int))
print 'worker', os.getpid(), 'data <-', t
# this pretends some complex calculation
time.sleep(1.0)
# now grab the sum tuple and update it
s = ts.inp(('sum', object))
print 'worker', os.getpid(), 'sum <-', t
ts.out(('sum', s[1]+sum(t)))
print 'worker', os.getpid(), '-> sum', s[1]+sum(t)
def breaking_worker(ts):
raise ValueError(55)
with tuplespace() as ts:
# seed the tuple space with the sum tuple
ts.out(('sum', 0))
# start all the workers
for i in range(5):
ts.eval(worker)
# push some tuples of integers into the tuple space
ts.out((1,2,3,4))
ts.out((4,5,6,7))
ts.out((3,4,5,2))
# lets pretend some complex calculation happens
time.sleep(5.0)
# grab the sum tuple from the tuple space
print 'main tes1', ts.inp(('sum', object))
# there shouldn't be any other sum tuple
try:
with timeout(2):
ts.inp(('sum', object))
except TimeoutError:
print 'main test2', "no more sums"
# now lets try something that throws an exception
ts.eval(breaking_worker)
# grab the exception tuple from the tuple space
t = ts.inp((Exception, object))
print 'main test3', tOutput:main tes1
