Kill greenlets with notify

This commit is contained in:
shortcutme 2019-11-20 14:07:33 +01:00
parent 6c31a3b77e
commit 9299e5b614
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE
2 changed files with 4 additions and 3 deletions

View file

@ -106,7 +106,7 @@ class SiteAnnouncer(object):
gevent.joinall(threads, timeout=20) # Wait for announce finish gevent.joinall(threads, timeout=20) # Wait for announce finish
for thread in threads: for thread in threads:
if thread.value is None or type(thread.value) is GreenletExit: if thread.value is None:
continue continue
if thread.value is not False: if thread.value is not False:
if thread.value > 1.0: # Takes more than 1 second to announce if thread.value > 1.0: # Takes more than 1 second to announce

View file

@ -1,4 +1,5 @@
import gevent import gevent
from Debug import Debug
class GreenletManager: class GreenletManager:
@ -17,7 +18,7 @@ class GreenletManager:
self.greenlets.add(greenlet) self.greenlets.add(greenlet)
return greenlet return greenlet
def stopGreenlets(self, reason="Stopping greenlets"): def stopGreenlets(self, reason="Stopping all greenlets"):
num = len(self.greenlets) num = len(self.greenlets)
gevent.killall(list(self.greenlets)) gevent.killall(list(self.greenlets), Debug.Notify(reason), block=False)
return num return num