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

Reply via email to