[pypy-commit] lang-smalltalk default: new try

amintos noreply at buildbot.pypy.org
Thu Apr 3 11:31:41 CEST 2014


Author: amintos
Branch: 
Changeset: r748:83d30531d7fb
Date: 2014-01-14 13:24 +0100
http://bitbucket.org/pypy/lang-smalltalk/changeset/83d30531d7fb/

Log:	new try

diff --git a/spyvm/interpreter.py b/spyvm/interpreter.py
--- a/spyvm/interpreter.py
+++ b/spyvm/interpreter.py
@@ -133,6 +133,7 @@
         greens=[],
         reds=['pc', 's_context', 'self', 'method'],
         virtualizables=['s_context'],
+        stm_do_transaction_breaks=True
         # get_printable_location=get_printable_location
     )
 
@@ -226,7 +227,7 @@
         if not jit.we_are_jitted() and may_context_switch:
             self.quick_check_for_interrupt(s_context)
         method = s_context.s_method()
-        while not rstm.should_break_transaction():
+        while True:
             pc = s_context.pc()
             if pc < old_pc:
                 if jit.we_are_jitted():
@@ -236,11 +237,14 @@
                     pc=pc, self=self, method=method,
                     s_context=s_context)
             old_pc = pc
+
+            # STM-ONLY JITDRIVER!
             self.jit_driver.jit_merge_point(
                 pc=pc, self=self, method=method,
                 s_context=s_context)
+            if rstm.should_break_transaction(False):
+                rstm.jit_stm_transaction_break_point()
             try:
-                rstm.jit_stm_transaction_break_point(False)
                 self.step(s_context)
             except Return, nlr:
 


More information about the pypy-commit mailing list