#!/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