Staging
v0.5.1
v0.5.1
https://github.com/python/cpython
Revision 0b7629cd846e3e160ac07cafc4e97644024f11b8 authored by Victor Stinner on 10 June 2017, 09:20:03 UTC, committed by GitHub on 10 June 2017, 09:20:03 UTC
Before, it was possible to get the following sequence of events (especially on Windows, where the C-level signal handler for SIGINT is run in a separate thread): - SIGINT arrives - trip_signal is called - trip_signal writes to the wakeup fd - the main thread wakes up from select()-or-equivalent - the main thread checks for pending signals, but doesn't see any - the main thread drains the wakeup fd - the main thread goes back to sleep - trip_signal sets is_tripped=1 and calls Py_AddPendingCall to notify the main thread the it should run the Python-level signal handler - the main thread doesn't notice because it's asleep This has been causing repeated failures in the Trio test suite: https://github.com/python-trio/trio/issues/119 (cherry picked from commit 4ae01496971624c75080431806ed1c08e00f22c7)
1 parent 12cbd87
Tip revision: 0b7629cd846e3e160ac07cafc4e97644024f11b8 authored by Victor Stinner on 10 June 2017, 09:20:03 UTC
bpo-30038: fix race condition in signal delivery + wakeup fd (#1082) (#2075)
bpo-30038: fix race condition in signal delivery + wakeup fd (#1082) (#2075)
Tip revision: 0b7629c
File | Mode | Size |
---|---|---|
Python.asdl | -rw-r--r-- | 5.0 KB |
acceler.c | -rw-r--r-- | 3.3 KB |
asdl.py | -rw-r--r-- | 12.6 KB |
asdl_c.py | -rw-r--r-- | 43.6 KB |
bitset.c | -rw-r--r-- | 1.0 KB |
firstsets.c | -rw-r--r-- | 2.8 KB |
grammar.c | -rw-r--r-- | 7.4 KB |
grammar1.c | -rw-r--r-- | 1.3 KB |
listnode.c | -rw-r--r-- | 1.2 KB |
metagrammar.c | -rw-r--r-- | 2.4 KB |
myreadline.c | -rw-r--r-- | 9.9 KB |
node.c | -rw-r--r-- | 4.4 KB |
parser.c | -rw-r--r-- | 11.6 KB |
parser.h | -rw-r--r-- | 1.0 KB |
parsetok.c | -rw-r--r-- | 10.6 KB |
parsetok_pgen.c | -rw-r--r-- | 35 bytes |
pgen.c | -rw-r--r-- | 17.9 KB |
pgenmain.c | -rw-r--r-- | 4.0 KB |
printgrammar.c | -rw-r--r-- | 2.9 KB |
tokenizer.c | -rw-r--r-- | 54.3 KB |
tokenizer.h | -rw-r--r-- | 3.8 KB |
tokenizer_pgen.c | -rw-r--r-- | 36 bytes |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...