Tuple Space with lindypy Problem - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Tuple Space with lindypy Problem (/thread-5099.html) |
Tuple Space with lindypy Problem - draems - Sep-19-2017 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', t
|