Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Forking Greenlets

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?

like image 689
mattbasta Avatar asked Oct 11 '22 15:10

mattbasta


1 Answers

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.

like image 200
Spike Gronim Avatar answered Oct 27 '22 00:10

Spike Gronim