Author: Armin Rigo <[email protected]>
Branch: stm-gc
Changeset: r54594:fc2c0855b755
Date: 2012-04-20 19:35 +0200
http://bitbucket.org/pypy/pypy/changeset/fc2c0855b755/

Log:    Better _freeze_, to make sure everything is clear during
        translation.

diff --git a/pypy/module/transaction/fifo.py b/pypy/module/transaction/fifo.py
--- a/pypy/module/transaction/fifo.py
+++ b/pypy/module/transaction/fifo.py
@@ -4,6 +4,8 @@
         self.first = None
         self.last = None
 
+    clear = __init__
+
     def append(self, newitem):
         newitem.next = None
         if self.last is None:
diff --git a/pypy/module/transaction/interp_transaction.py 
b/pypy/module/transaction/interp_transaction.py
--- a/pypy/module/transaction/interp_transaction.py
+++ b/pypy/module/transaction/interp_transaction.py
@@ -28,18 +28,21 @@
         self.transactionalstate = None
         #
         self.w_error = None
+        self.threadobjs = {}      # empty during translation
+        self.threadnums = {}      # empty during translation
+        self.epolls = {}
+        self.pending = Fifo()
+        self._freeze_()
+
+    def _freeze_(self):
         self.ll_lock = threadintf.null_ll_lock
         self.ll_no_tasks_pending_lock = threadintf.null_ll_lock
         self.ll_unfinished_lock = threadintf.null_ll_lock
         self.ll_not_ready_to_start_lock = threadintf.null_ll_lock
-        self.threadobjs = {}      # empty during translation
-        self.threadnums = {}      # empty during translation
-        self.epolls = {}
-        self.pending = Fifo()
-
-    def _freeze_(self):
         self.threadobjs.clear()
         self.threadnums.clear()
+        self.epolls.clear()
+        self.pending.clear()
         return False
 
     def startup(self, space, w_module):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to