Armin Rigo avatar Armin Rigo committed d3c03a2

Needs a become_inevitable()

Comments (0)

Files changed (1)

pypy/module/signal/stmactionflag.py

 from pypy.interpreter.executioncontext import AbstractActionFlag
-from rpython.rlib import jit
+from rpython.rlib import jit, rstm
 from rpython.rlib.objectmodel import we_are_translated
 from rpython.rlib.rsignal import pypysig_get_occurred, pypysig_set_occurred
 
 
     def reset_ticker(self, value):
         if we_are_translated():
+            # explicit manipulation of the counter needs to turn the
+            # transaction inevitable.  We don't turn it inevitable in
+            # decrement_ticker() or if a real signal is received, but
+            # we turn it inevitable when this condition is detected
+            # and we reset a value >= 0.
+            rstm.become_inevitable()
             pypysig_set_occurred(value)
 
     def rearm_ticker(self):
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.