Author: Armin Rigo <[email protected]>
Branch: continulet-pickle
Changeset: r47277:4f008a29d7ff
Date: 2011-09-14 20:58 +0200
http://bitbucket.org/pypy/pypy/changeset/4f008a29d7ff/

Log:    Fix.

diff --git a/pypy/module/_continuation/interp_continuation.py 
b/pypy/module/_continuation/interp_continuation.py
--- a/pypy/module/_continuation/interp_continuation.py
+++ b/pypy/module/_continuation/interp_continuation.py
@@ -276,8 +276,7 @@
         while True:
             ec = self.sthread.ec
             frame = ec.topframeref()
-            if frame.pycode is get_entrypoint_pycode(space):
-                break
+            last_level = frame.pycode is get_entrypoint_pycode(space)
             #
             code = frame.pycode.co_code
             instr = frame.last_instr
@@ -309,6 +308,8 @@
                 operr = None
             except OperationError, operr:
                 pass
+            if last_level:
+                break
         if operr:
             raise operr
     except Exception, e:
diff --git a/pypy/module/_continuation/test/test_zpickle.py 
b/pypy/module/_continuation/test/test_zpickle.py
--- a/pypy/module/_continuation/test/test_zpickle.py
+++ b/pypy/module/_continuation/test/test_zpickle.py
@@ -21,8 +21,14 @@
         lst = []
         co = continulet(lst.append)
         co2, lst2 = copy.deepcopy((co, lst))
+        #
+        assert lst == []
+        co.switch()
+        assert lst == [co]
+        #
         assert lst2 == []
-        xxx
+        co2.switch()
+        assert lst2 == [co2]
 
     def test_copy_continulet_real(self):
         import new, sys
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to