1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
#!/usr/bin/env python
import pickle, sys
import stackless
ch = stackless.channel()
def recurs(depth, level=1):
print 'enter level %s%d' % (level*' ', level)
if level >= depth:
ch.send('hi')
if level < depth:
recurs(depth, level+1)
print 'leave level %s%d' % (level*' ', level)
def demo(depth):
t = stackless.tasklet(recurs)(depth)
print ch.receive()
pickle.dump(t, file('tasklet.pickle', 'wb'))
if __name__ == '__main__':
if len(sys.argv) > 1:
t = pickle.load(file(sys.argv[1], 'rb'))
t.insert()
else:
t = stackless.tasklet(demo)(14)
print 'before run'
stackless.run()
print 'after run'
# remark: think of fixing cells etc. on the sprint
|