Skip to content

Instantly share code, notes, and snippets.

@schmir
Created October 4, 2010 14:46
Show Gist options
  • Save schmir/609801 to your computer and use it in GitHub Desktop.
Save schmir/609801 to your computer and use it in GitHub Desktop.
diff --git a/gevent/greenlet.py b/gevent/greenlet.py
index 93076db..351aac6 100644
--- a/gevent/greenlet.py
+++ b/gevent/greenlet.py
@@ -156,6 +156,20 @@ class Greenlet(greenlet):
self._notifier = None
self._start_event = None
+ current = getcurrent()
+ self._leader = getattr(current, "_leader", None)
+ if self._leader is not None:
+ def killit(_):
+ print "KILLIT", self
+ self.kill()
+
+ print "linking to leader", self._leader
+ current.link(killit)
+ self.link(lambda _: current.unlink(killit))
+
+ def become_leader(self):
+ self._leader = getcurrent()
+
@property
def started(self):
return self._start_event is not None or bool(self)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment