Forking what is left of ZeroNet and hopefully adding an AT Proto Frontend/Proxy
at main 24 lines 777 B view raw
1import gevent 2from Debug import Debug 3 4 5class GreenletManager: 6 def __init__(self): 7 self.greenlets = set() 8 9 def spawnLater(self, *args, **kwargs): 10 greenlet = gevent.spawn_later(*args, **kwargs) 11 greenlet.link(lambda greenlet: self.greenlets.remove(greenlet)) 12 self.greenlets.add(greenlet) 13 return greenlet 14 15 def spawn(self, *args, **kwargs): 16 greenlet = gevent.spawn(*args, **kwargs) 17 greenlet.link(lambda greenlet: self.greenlets.remove(greenlet)) 18 self.greenlets.add(greenlet) 19 return greenlet 20 21 def stopGreenlets(self, reason="Stopping all greenlets"): 22 num = len(self.greenlets) 23 gevent.killall(list(self.greenlets), Debug.createNotifyType(reason), block=False) 24 return num