[Stackless] Stackless based replacement

Andrew Francis andrewfr_ice at yahoo.com
Tue Oct 21 18:10:19 CEST 2008

Hi Larry:

> We seem to have different ideas of what is simple. You
> propose exceptions, waits, signals, barriers, re-initialization, 
> and presumably global signal values. This in my opinion is a whole >Italian restaurant of spaghetti, and it sounds intrinsically global, >which is poison to maintainable multiprocessing in my experience. 

This is what I had in mind. A sketch.

def producer(synchronizer):
        # do some computation
    except Signalled, data
        # oops the consumer has moved on.... maybe 
        # I should gracefully terminate.....

def consumer(synchronizer):
    output = synchronizer.wait()
    # okay, let us do some stuff with the output
synchronizer = Synchronizer(numberOfProducers)
for .... :

Most of the effort is in defining the right behaviour.....

Once again, my experiences are when you naively use channels, it is easy to get in trouble.  A construct like receive_first() looks difficult to implement, in comparison to a synchronizer. 

Here is a thread from December 2005 (2005!)




More information about the Stackless mailing list