You can pickle the Python execution state with Stackless Python.
import stackless
def a():
c = 1
while(True):
print c
c += 1
stackless.schedule()
tskOrg = stackless.tasklet(a)()
print "----first run"
stackless.schedule()
stackless.schedule()
stackless.schedule()
print "----now serialize the task"
import pickle
p = pickle.dumps(tskOrg)
print "----second run"
stackless.schedule()
stackless.schedule()
stackless.schedule()
print "----remove the task from the scheduler and insert the pickled one"
tskOrg.remove()
tskCopy = pickle.loads(p)
tskCopy.insert()
print "----run the pickled task"
stackless.schedule()
stackless.schedule()
stackless.schedule()
----first run
1
2
3
----now serialize the task
----second run
4
5
6
----remove the task from the scheduler and insert the pickled one
----run the pickled task
4
5
6
Note:
Stackless Python is not a standard Python.
It's a variant of Python that doesn't use C stack for Python function calls.
You need to download it from http://www.stackless.com/
and customize Python installed on your machine.
No comments:
Post a Comment