Author: Armin Rigo <ar...@tunes.org>
Branch: reverse-debugger
Changeset: r86153:a852dc954edc
Date: 2016-08-11 18:01 +0200
http://bitbucket.org/pypy/pypy/changeset/a852dc954edc/

Log:    Threads: in-progress

diff --git a/pypy/interpreter/reverse_debugging.py 
b/pypy/interpreter/reverse_debugging.py
--- a/pypy/interpreter/reverse_debugging.py
+++ b/pypy/interpreter/reverse_debugging.py
@@ -591,6 +591,13 @@
     # This class is tweaked to generate one byte per _SIG_TICKER_COUNT
     # bytecodes, at the expense of not reacting to signals instantly.
 
+    # Threads: after 10'000 calls to decrement_ticker(), it should
+    # return -1.  It should also return -1 if there was a signal.
+    # This is done by calling _update_ticker_from_signals() every 100
+    # calls, and invoking rsignal.pypysig_check_and_reset(); this in
+    # turn returns -1 if there was a signal or if it was called 100
+    # times.
+
     _SIG_TICKER_COUNT = 100
     _ticker = 0
     _ticker_count = _SIG_TICKER_COUNT * 10
@@ -610,10 +617,10 @@
             if c < 0:
                 c = self._update_ticker_from_signals()
             self._ticker_count = c
-        if self.has_bytecode_counter:    # this 'if' is constant-folded
-            print ("RDBSignalActionFlag: has_bytecode_counter: "
-                   "not supported for now")
-            raise NotImplementedError
+        #if self.has_bytecode_counter:    # this 'if' is constant-folded
+        #    print ("RDBSignalActionFlag: has_bytecode_counter: "
+        #           "not supported for now")
+        #    raise NotImplementedError
         return self._ticker
 
     def _update_ticker_from_signals(self):
diff --git a/rpython/translator/c/src/signals.h 
b/rpython/translator/c/src/signals.h
--- a/rpython/translator/c/src/signals.h
+++ b/rpython/translator/c/src/signals.h
@@ -39,8 +39,9 @@
 
 inline static char pypysig_check_and_reset(void) {
     /* used by reverse_debugging */
-    char result = pypysig_counter.value < 0;
-    pypysig_counter.value = 0;
+    char result = --pypysig_counter.value < 0;
+    if (result)
+        pypysig_counter.value = 100;
     return result;
 }
 
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to