Python Forum
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
Output:
main tes1