I have a gevent application that spawns multiple greenlets across multiple modules. I want to be able to gracefully shutdown the application (either internally or by catching SIGTERM
, for instance), allowing greenlets to terminate nicely by catching GreenletExit
and executing finally:
clauses.
If I had the a of all running greenlets, I could do gevent.killall(list_of_greenlets)
, but maintaining such a list is rather a hassle; besides, gevent must be keeping this very list in some form or another.
So, can I kill all greenlets that have been started without maintaining a list of them?
(I'm using gevent 1.0.0 on python 2.7 on raspbian)