Forking Greenlets

1k views Asked by At

Perhaps I'm missing something obvious (and it is a Friday), but is there a way to do the equivalent of an os.fork() on a greenlet? I'm not necessarily looking to fork the process, I'm looking to take the greenlet and run one set of code, then another, but with independent scopes (as with os.fork()).

Any ideas or should I just get some sleep?

1

There are 1 answers

0
Spike Gronim On BEST ANSWER

In order to conceptually fork a greenlet, just create another greenlet wrapping your "child function". I also highly recommend gevent, which is built on greenlet. The gevent code has a fork() method, but it forks the Python process and then restarts gevent in the child. I bet that you can implement whatever you are doing in gevent with more readable code than just greenlet.