summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author郭旭星Astrum Kuo <guoxuxing@meituan.com>2014-04-02 15:29:24 +0800
committerSergey Shepelev <temotor@gmail.com>2014-04-15 14:59:14 +0400
commit75c633217110b777bb64abc78693af16a2163a8d (patch)
tree375a978c6c318a0d34f4ccebe8bbb0e49eeab983
parent5399fbda9df91d546a6f814030cdd9e225f83230 (diff)
downloadeventlet-75c633217110b777bb64abc78693af16a2163a8d.tar.gz
greenthread: add .unlink() method; Thanks to Astrum Kuo
Compatibility with gevent. https://github.com/eventlet/eventlet/pull/82
-rw-r--r--eventlet/greenthread.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/eventlet/greenthread.py b/eventlet/greenthread.py
index fc9be51..2033408 100644
--- a/eventlet/greenthread.py
+++ b/eventlet/greenthread.py
@@ -189,6 +189,19 @@ class GreenThread(greenlet.greenlet):
if self._exit_event.ready():
self._resolve_links()
+ def unlink(self, func, *curried_args, **curried_kwargs):
+ """ remove linked function set by :meth:`link`
+
+ Remove successfully return True, otherwise False
+ """
+ if not getattr(self, '_exit_funcs', None):
+ return False
+ try:
+ self._exit_funcs.remove((func, curried_args, curried_kwargs))
+ return True
+ except ValueError:
+ return False
+
def main(self, function, args, kwargs):
try:
result = function(*args, **kwargs)