summaryrefslogtreecommitdiffstats
path: root/Misc
diff options
context:
space:
mode:
authorAntoine Pitrou <pitrou@free.fr>2017-07-01 17:12:05 (GMT)
committerGitHub <noreply@github.com>2017-07-01 17:12:05 (GMT)
commit3024c0529077f5cff0b32dc84b5923c8fba99a87 (patch)
treeede686f31152576c3fb678df98dca62ae21447ce /Misc
parent48290c1c3023b2386b229f133b8629ffe5e7dd47 (diff)
downloadcpython-3024c0529077f5cff0b32dc84b5923c8fba99a87.zip
cpython-3024c0529077f5cff0b32dc84b5923c8fba99a87.tar.gz
cpython-3024c0529077f5cff0b32dc84b5923c8fba99a87.tar.bz2
[3.6] bpo-30703: Improve signal delivery (GH-2415) (#2527)
* [3.6] bpo-30703: Improve signal delivery (GH-2415) * Improve signal delivery Avoid using Py_AddPendingCall from signal handler, to avoid calling signal-unsafe functions. * Remove unused function * Improve comments * Add stress test * Adapt for --without-threads * Add second stress test * Add NEWS blurb * Address comments @haypo. (cherry picked from commit c08177a1ccad2ed0d50898c2731b518c631aed14) * bpo-30796: Fix failures in signal delivery stress test (#2488) * bpo-30796: Fix failures in signal delivery stress test setitimer() can have a poor minimum resolution on some machines, this would make the test reach its deadline (and a stray signal could then kill a subsequent test). * Make sure to clear the itimer after the test
Diffstat (limited to 'Misc')
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2017-06-28-21-07-32.bpo-30703.ULCdFp.rst6
1 files changed, 6 insertions, 0 deletions
diff --git a/Misc/NEWS.d/next/Core and Builtins/2017-06-28-21-07-32.bpo-30703.ULCdFp.rst b/Misc/NEWS.d/next/Core and Builtins/2017-06-28-21-07-32.bpo-30703.ULCdFp.rst
new file mode 100644
index 0000000..9adeb45
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2017-06-28-21-07-32.bpo-30703.ULCdFp.rst
@@ -0,0 +1,6 @@
+Improve signal delivery.
+
+Avoid using Py_AddPendingCall from signal handler, to avoid calling signal-
+unsafe functions. The tests I'm adding here fail without the rest of the
+patch, on Linux and OS X. This means our signal delivery logic had defects
+(some signals could be lost).