Author: Armin Rigo <[email protected]>
Branch: stacklet
Changeset: r46642:0692b7cef0ba
Date: 2011-08-19 15:41 +0200
http://bitbucket.org/pypy/pypy/changeset/0692b7cef0ba/
Log: Test and fix.
diff --git a/lib_pypy/greenlet.py b/lib_pypy/greenlet.py
--- a/lib_pypy/greenlet.py
+++ b/lib_pypy/greenlet.py
@@ -50,7 +50,7 @@
def __switch(self, unbound_method, *args):
current = getcurrent()
target = self
- if not target.is_pending() and not target.__main:
+ if not target:
if not target.__started:
_continulet.__init__(target, _greenlet_start, *args)
args = (None,)
@@ -85,7 +85,8 @@
else:
return args
- __nonzero__ = _continulet.is_pending
+ def __nonzero__(self):
+ return self.__main or _continulet.is_pending(self)
@property
def dead(self):
diff --git a/pypy/module/test_lib_pypy/test_greenlet.py
b/pypy/module/test_lib_pypy/test_greenlet.py
--- a/pypy/module/test_lib_pypy/test_greenlet.py
+++ b/pypy/module/test_lib_pypy/test_greenlet.py
@@ -71,6 +71,9 @@
assert not g1 and not g1.dead
g1.switch()
assert not g1 and g1.dead
+ #
+ gmain = greenlet.getcurrent()
+ assert gmain and not gmain.dead
def test_GreenletExit(self):
from greenlet import greenlet, GreenletExit
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit