Antoine Pietri
5d2a27de62
signal: add strsignal() ( #6017 )
...
Co-authored-by: Vajrasky Kok <sky.kok@speaklikeaking.com>
2018-03-12 14:42:34 +01:00
Nathaniel J. Smith
902ab80b59
bpo-30050: Allow disabling full buffer warnings in signal.set_wakeup_fd ( #4792 )
2017-12-17 23:10:18 -05:00
Antoine Pitrou
f6f90ff079
bpo-30057: Fix potential missed signal in signal.signal(). ( #4258 )
...
Bug report and patch by Jeroen Demeyer.
2017-11-03 19:58:46 +01:00
Victor Stinner
ef611c96ea
bpo-30807: signal.setitimer() now uses _PyTime API (GH-3865)
...
The _PyTime API handles detects overflow and is well tested.
Document that the signal will only be sent once if internal is equal
to zero.
2017-10-13 13:49:43 -07:00
Antoine Pitrou
a6a4dc816d
bpo-31370: Remove support for threads-less builds ( #3385 )
...
* Remove Setup.config
* Always define WITH_THREAD for compatibility.
2017-09-07 18:56:24 +02:00
Antoine Pitrou
2c8a5e4c96
bpo-30808: Use _Py_atomic API for concurrency-sensitive signal state ( #2417 )
...
* Improve signal delivery
Avoid using Py_AddPendingCall from signal handler, to avoid calling signal-unsafe functions.
* Remove unused function
* Improve comments
* Use _Py_atomic API for concurrency-sensitive signal state
* Add blurb
2017-07-17 12:25:19 +02:00
Antoine Pitrou
729780a810
bpo-30807: signal.setitimer() may disable the timer by mistake ( #2493 )
...
* bpo-30807: signal.setitimer() may disable the timer by mistake
* Add NEWS blurb
2017-06-30 10:01:05 +02:00
Antoine Pitrou
c08177a1cc
bpo-30703: Improve signal delivery ( #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
2017-06-28 23:29:29 +02:00
Antoine Pitrou
346cbd351e
bpo-16500: Allow registering at-fork handlers ( #1715 )
...
* bpo-16500: Allow registering at-fork handlers
* Address Serhiy's comments
* Add doc for new C API
* Add doc for new Python-facing function
* Add NEWS entry + doc nit
2017-05-27 17:50:54 +02:00
Nathaniel J. Smith
4ae0149697
bpo-30038: fix race condition in signal delivery + wakeup fd ( #1082 )
...
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
2017-05-16 23:12:11 +02:00
Serhiy Storchaka
55fe1ae970
bpo-30022: Get rid of using EnvironmentError and IOError (except test… ( #1051 )
2017-04-16 10:46:38 +03:00
Serhiy Storchaka
aefa7ebf0f
bpo-6532: Make the thread id an unsigned integer. ( #781 )
...
* bpo-6532: Make the thread id an unsigned integer.
From C API side the type of results of PyThread_start_new_thread() and
PyThread_get_thread_ident(), the id parameter of
PyThreadState_SetAsyncExc(), and the thread_id field of PyThreadState
changed from "long" to "unsigned long".
* Restore a check in thread_get_ident().
2017-03-23 14:48:39 +01:00
Zachary Ware
6a6967e827
Issue #21085 : add configure check for siginfo_t.si_band
...
Patch by Masayuki Yamamoto, reviewed and rebased by Erik Bray.
This is a first step on the long road toward resupporting Cygwin, which does
not provide siginfo_t.si_band.
2016-10-01 00:47:27 -05:00
Martin Panter
d508d00919
Issue #28139 : Merge indentation fixes from 3.5 into 3.6
2016-09-17 07:59:14 +00:00
Martin Panter
6d57fe1c23
Issue #28139 : Fix messed up indentation
...
Also update the classmethod and staticmethod doc strings and comments to
match the RST documentation.
2016-09-17 03:26:16 +00:00
Christian Heimes
6782b14bcb
Use PyModule_AddIntMacro() in signal module
...
The signal module was using old-style module initialization with
potential NULL dereferencing.
CID 1295026
2016-09-09 00:11:45 +02:00
Steve Dower
940f33a50f
Issue #23524 : Finish removing _PyVerify_fd from sources
2016-09-08 11:21:54 -07:00
Benjamin Peterson
ca47063998
replace Py_(u)intptr_t with the c99 standard types
2016-09-06 13:47:26 -07:00
Serhiy Storchaka
1a2b24f02d
Issue #27332 : Fixed the type of the first argument of module-level functions
...
generated by Argument Clinic. Patch by Petr Viktorin.
2016-07-07 17:35:15 +03:00
Serhiy Storchaka
57a01d3a0e
Issue #26200 : Added Py_SETREF and replaced Py_XSETREF with Py_SETREF
...
in places where Py_DECREF was used.
2016-04-10 18:05:40 +03:00
Serhiy Storchaka
48842714b9
Issue #22570 : Renamed Py_SETREF to Py_XSETREF.
2016-04-06 09:45:48 +03:00
Serhiy Storchaka
5a57ade58e
Issue #20440 : Massive replacing unsafe attribute setting code with special
...
macro Py_SETREF.
2015-12-24 10:35:59 +02:00
Serhiy Storchaka
6b680cd6b2
Fixed compilation error in signalmodule.c (issue #20182 ).
2015-05-16 15:57:56 +03:00
Tal Einat
c7027b7904
Issue #20182 : converted the signal module to use Argument Clinic
2015-05-16 14:14:49 +03:00
Victor Stinner
e72fe3995b
Issue #23836 : Use _Py_write_noraise() to retry on EINTR in trip_signal() of
...
signalmodule.c
2015-04-01 18:35:22 +02:00
Victor Stinner
6aa446cf03
PEP 475: on EINTR, retry the function even if the timeout is equals to zero
...
Retry:
* signal.sigtimedwait()
* threading.Lock.acquire()
* threading.RLock.acquire()
* time.sleep()
2015-03-30 21:33:51 +02:00
Victor Stinner
e134a7fe36
Issue #23752 : _Py_fstat() is now responsible to raise the Python exception
...
Add _Py_fstat_noraise() function when a Python exception is not welcome.
2015-03-30 10:09:31 +02:00
Victor Stinner
869e1778c0
Issue #22117 : Replace usage of _PyTime_ROUND_UP with _PyTime_ROUND_CEILING
...
All these functions only accept positive timeouts, so this change has no effect
in practice.
2015-03-30 03:49:14 +02:00
Victor Stinner
34dc0f46ae
Issue #22117 : The signal modules uses the new _PyTime_t API
...
* Add _PyTime_AsTimespec()
* Add unit tests for _PyTime_AsTimespec()
2015-03-27 18:19:03 +01:00
Victor Stinner
a453cd8d85
Issue #23715 : signal.sigwaitinfo() and signal.sigtimedwait() are now retried
...
when interrupted by a signal not in the *sigset* parameter, if the signal
handler does not raise an exception. signal.sigtimedwait() recomputes the
timeout with a monotonic clock when it is retried.
Remove test_signal.test_sigwaitinfo_interrupted() because sigwaitinfo() doesn't
raise InterruptedError anymore if it is interrupted by a signal not in its
sigset parameter.
2015-03-20 12:54:28 +01:00
Steve Dower
8acde7dcce
Issue #23524 : Change back to using Windows errors for _Py_fstat instead of the errno shim.
2015-03-07 18:14:07 -08:00
Steve Dower
f2f373f593
Issue #23152 : Implement _Py_fstat() to support files larger than 2 GB on Windows.
...
fstat() may fail with EOVERFLOW on files larger than 2 GB because the file size type is an signed 32-bit integer.
2015-02-21 08:44:05 -08:00
Victor Stinner
cf40a9e640
Issue #23450 : Fix signal.set_wakeup_fd() on Windows
...
Detect integer overflow on the file descriptor of the socket on 64-bit Python.
2015-02-12 16:34:54 +01:00
Nick Coghlan
d600951748
Issue #22869 : Split pythonrun into two modules
...
- interpreter startup and shutdown code moved to a new
pylifecycle.c module
- Py_OptimizeFlag moved into the new module with the other
global flags
2014-11-20 21:39:37 +10:00
Victor Stinner
3822760f2d
Issue #22042 : signal.set_wakeup_fd(fd) now raises an exception if the file
...
descriptor is in blocking mode.
2014-08-27 12:59:44 +02:00
Victor Stinner
115171086a
Issue #22018 : On Windows, signal.set_wakeup_fd() now also supports sockets.
...
A side effect is that Python depends to the WinSock library.
2014-07-29 23:31:34 +02:00
Victor Stinner
1d8948e023
Backout 42ced0d023cd: oops, i didn't want to push this changeset :-/
2014-07-24 22:51:05 +02:00
Victor Stinner
d18ccd19f0
tets
2014-07-24 21:58:53 +02:00
Victor Stinner
0bffc94d57
Issue #22018 : signal.set_wakeup_fd() now raises an OSError instead of a
...
ValueError on fstat() failure.
2014-07-21 16:28:54 +02:00
Brett Cannon
815a6f38a6
merge along w/ fix for issue #2107 (commit c9239171e429)
2014-04-04 10:20:28 -04:00
Giampaolo Rodola'
e09fb7198a
fix #21076 : turn signal module constants into enums
2014-04-04 15:34:17 +02:00
Victor Stinner
3c1b379ebd
Issue #20320 : select.select() and select.kqueue.control() now round the timeout
...
aways from zero, instead of rounding towards zero.
It should make test_asyncio more reliable, especially test_timeout_rounding() test.
2014-02-17 00:02:43 +01:00
Serhiy Storchaka
dfe98a102e
Issue #20437 : Fixed 22 potential bugs when deleting objects references.
2014-02-09 13:46:20 +02:00
Serhiy Storchaka
505ff755d7
Issue #20437 : Fixed 21 potential bugs when deleting objects references.
2014-02-09 13:33:53 +02:00
Christian Heimes
44ed3de6f4
Issue #18774 : Remove last bits of GNU PTH thread code, patch by Vajrasky Kok.
2013-08-18 12:43:24 +02:00
Antoine Pitrou
6f6ec37838
Issue #16105 : When a signal handler fails to write to the file descriptor registered with ``signal.set_wakeup_fd()``, report an exception instead of ignoring the error.
2013-08-17 20:27:56 +02:00
Victor Stinner
1c8f059019
Issue #18520 : Add a new PyStructSequence_InitType2() function, same than
...
PyStructSequence_InitType() except that it has a return value (0 on success,
-1 on error).
* PyStructSequence_InitType2() now raises MemoryError on memory allocation failure
* Fix also some calls to PyDict_SetItemString(): handle error
2013-07-22 22:24:54 +02:00
Antoine Pitrou
52c5f85cf9
Issue #14173 : Avoid crashing when reading a signal handler during interpreter shutdown.
2013-05-04 23:21:09 +02:00
Antoine Pitrou
c8c952ce2a
Issue #14173 : Avoid crashing when reading a signal handler during interpreter shutdown.
2013-05-04 23:16:59 +02:00
Richard Oudkerk
245bbee0d5
Merge.
2013-04-17 21:24:58 +01:00
Antoine Pitrou
cf8a1e51ec
- Issue #17782 : Fix undefined behaviour on platforms where ``struct timespec``'s "tv_nsec" member is not a C long.
2013-04-17 22:06:44 +02:00
Antoine Pitrou
7faf70512a
Issue #17591 : Use lowercase filenames when including Windows header files.
...
Patch by Roumen Petrov.
2013-03-31 22:48:04 +02:00
Serhiy Storchaka
c2d020090b
Issue #4591 : Uid and gid values larger than 2**31 are supported now.
2013-02-10 22:03:08 +02:00
Serhiy Storchaka
7cf5599346
Issue #4591 : Uid and gid values larger than 2**31 are supported now.
2013-02-10 21:56:49 +02:00
Brett Cannon
611afc1b3f
Issue #17098 : all modules should have __loader__
2013-02-01 14:07:28 -05:00
Brett Cannon
0ecd30b4af
Issue #17098 : Make sure every module has __loader__ defined.
...
Thanks to Thomas Heller for the bug report.
2013-02-01 14:04:12 -05:00
Benjamin Peterson
9f30abd393
merge 3.3
2013-01-18 00:10:37 -05:00
Benjamin Peterson
c68a4a048c
check windows fd validity ( closes #16992 )
2013-01-18 00:10:24 -05:00
Gregory P. Smith
0b83224c0d
Fixes issue #9535 : Fix pending signals that have been received but not
...
yet handled by Python to not persist after os.fork() in the child process.
2012-11-10 20:34:41 -08:00
Gregory P. Smith
34b14951ee
Fixes issue #9535 : Fix pending signals that have been received but not
...
yet handled by Python to not persist after os.fork() in the child process.
2012-11-10 20:33:39 -08:00
Gregory P. Smith
9463e3ac8b
Fixes issue #9535 : Fix pending signals that have been received but not
...
yet handled by Python to not persist after os.fork() in the child process.
2012-11-10 20:33:07 -08:00
Jesus Cea
14c81aba50
#16135 : Removal of OS/2 support (Modules/*)
2012-10-05 02:11:36 +02:00
Victor Stinner
643cd68ea4
Issue #13964 : signal.sigtimedwait() timeout is now a float instead of a tuple
...
Add a private API to convert an int or float to a C timespec structure.
2012-03-02 22:54:03 +01:00
Charles-François Natali
3f32fc87ad
Merge.
2012-02-02 20:38:10 +01:00
Charles-François Natali
6d0d24e359
Issue #13817 : After fork(), reinit the ad-hoc TLS implementation earlier to fix
...
a random deadlock when fork() is called in a multithreaded process in debug
mode, and make PyOS_AfterFork() more robust.
2012-02-02 20:31:42 +01:00
Antoine Pitrou
6dd381eb62
Issue #12328 : Under Windows, refactor handling of Ctrl-C events and
...
make _multiprocessing.win32.WaitForMultipleObjects interruptible when
the wait_flag parameter is false. Patch by sbt.
2011-11-21 21:26:56 +01:00
Ross Lagerwall
bc808224b6
Issue #12303 : Add sigwaitinfo() and sigtimedwait() to the signal module.
2011-06-25 12:13:40 +02:00
Victor Stinner
10c30d6764
Issue #8407 : signal.sigwait() releases the GIL
...
Initial patch by Charles-François Natali.
2011-06-10 01:39:53 +02:00
Victor Stinner
c13ef66649
Issue #8407 : Fix the signal handler of the signal module: if it is called
...
twice, it now writes the number of the second signal into the wakeup fd.
2011-05-25 02:35:58 +02:00
Victor Stinner
aedb2823fd
(Merge 3.2) Issue #12060 : Use sig_atomic_t type and volatile keyword in the
...
signal module. Patch written by Charles-François Natali.
2011-05-15 10:27:49 +02:00
Victor Stinner
5ebfe6d9a9
(Merge 3.1) Issue #12060 : Use sig_atomic_t type and volatile keyword in the
...
signal module. Patch written by Charles-François Natali.
2011-05-15 10:27:09 +02:00
Victor Stinner
2ec6b176bd
Issue #12060 : Use sig_atomic_t type and volatile keyword in the signal module.
...
Patch written by Charles-François Natali.
2011-05-15 10:21:59 +02:00
Victor Stinner
388196ed72
Issue #12011 : signal.signal() and signal.siginterrupt() raise an OSError,
...
instead of a RuntimeError: OSError has an errno attribute.
2011-05-10 17:13:00 +02:00
Victor Stinner
86e104a6ab
Issue #8407 : Use an explicit cast for FreeBSD
...
pthread_t is a pointer, not an integer, on FreeBSD. It should fix the following
gcc warning:
passing argument 1 of ‘pthread_kill’ makes pointer from integer without a cast
2011-05-09 14:45:38 +02:00
Victor Stinner
d49b1f14de
Issue #8407 : The signal handler writes the signal number as a single byte
...
instead of a nul byte into the wakeup file descriptor. So it is possible to
wait more than one signal and know which signals were raised.
2011-05-08 02:03:15 +02:00
Victor Stinner
b3e7219abf
Issue #8407 : Add pthread_kill(), sigpending() and sigwait() functions to the
...
signal module.
2011-05-08 01:46:11 +02:00
Victor Stinner
35b300c5fd
Issue #8407 : signal.pthread_sigmask() returns a set instead of a list
...
Update the doc. Refactor also related tests.
2011-05-04 13:20:35 +02:00
Victor Stinner
d0e516db50
Issue #8407 : pthread_sigmask() checks immediatly if signal handlers have been
...
called. The test checks that SIG_UNBLOCK calls immediatly the signal handler of
the pending SIGUSR1. Improve also the tests using an exception (division by
zero) instead of a flag (a function attribute).
2011-05-03 14:57:12 +02:00
Victor Stinner
72c53b5dcc
cleanup signalmodule.c: use PyModule_AddIntMacro()
2011-05-02 16:15:43 +02:00
Victor Stinner
a929335961
Issue #8407 , issue #11859 : Add signal.pthread_sigmask() function to fetch
...
and/or change the signal mask of the calling thread.
Fix also tests of test_io using threads and an alarm: use pthread_sigmask() to
ensure that the SIGALRM signal is received by the main thread.
Original patch written by Jean-Paul Calderone.
2011-04-30 15:21:58 +02:00
Antoine Pitrou
0c759febb6
Issue #10517 : After fork(), reinitialize the TLS used by the PyGILState_*
...
APIs, to avoid a crash with the pthread implementation in RHEL 5. Patch
by Charles-François Natali.
2011-04-27 19:28:05 +02:00
Victor Stinner
27026f87d8
(Merge 3.1) Issue #11768 : The signal handler of the signal module only calls
...
Py_AddPendingCall() for the first signal to fix a deadlock on reentrant or
parallel calls. PyErr_SetInterrupt() writes also into the wake up file.
2011-04-18 16:28:39 +02:00
Victor Stinner
6c9b35bfe2
Issue #11768 : The signal handler of the signal module only calls
...
Py_AddPendingCall() for the first signal to fix a deadlock on reentrant or
parallel calls. PyErr_SetInterrupt() writes also into the wake up file.
2011-04-18 16:25:56 +02:00
Georg Brandl
e5b99f0fb3
Remove redundant includes of headers that are already included by Python.h.
2010-11-30 09:41:01 +00:00
Antoine Pitrou
8d46e4267c
Merged revisions 86214 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86214 | antoine.pitrou | 2010-11-05 20:47:27 +0100 (ven., 05 nov. 2010) | 4 lines
Issue #10311 : The signal module now restores errno before returning from
its low-level signal handler. Patch by Hallvard B Furuseth.
........
2010-11-05 19:54:58 +00:00
Antoine Pitrou
39a6591507
Issue #10311 : The signal module now restores errno before returning from
...
its low-level signal handler. Patch by Hallvard B Furuseth.
2010-11-05 19:47:27 +00:00
Victor Stinner
49d3f2514b
_PyImport_FixupExtension() and _PyImport_FindExtension() uses FS encoding
...
* Rename _PyImport_FindExtension() to _PyImport_FindExtensionUnicode():
the filename becomes a Unicode object instead of byte string
* Rename _PyImport_FixupExtension() to _PyImport_FixupExtensionUnicode():
the filename becomes a Unicode object instead of byte string
2010-10-17 01:24:53 +00:00
Brian Curtin
eccd4d910d
Merged revisions 85140 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r85140 | brian.curtin | 2010-10-01 09:49:24 -0500 (Fri, 01 Oct 2010) | 4 lines
Fix #10003 . Add SIGBREAK to the set of valid signals on Windows.
This fixes a regression noticed by bzr, introduced by issue #9324 .
........
2010-10-01 15:09:53 +00:00
Brian Curtin
9e88b5aeee
Fix #10003 . Add SIGBREAK to the set of valid signals on Windows.
...
This fixes a regression noticed by bzr, introduced by issue #9324 .
2010-10-01 14:49:24 +00:00
Brian Curtin
912443c861
Merged revisions 84556 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r84556 | brian.curtin | 2010-09-06 11:04:10 -0500 (Mon, 06 Sep 2010) | 7 lines
Clean up the fix to #9324 with some of the suggestions raised on python-dev
in response to the original checkin.
Move the validation from the original loop into a switch statement,
and adjust a platform check in the tests.
........
2010-09-06 16:10:04 +00:00
Brian Curtin
c734b312cb
Clean up the fix to #9324 with some of the suggestions raised on python-dev
...
in response to the original checkin.
Move the validation from the original loop into a switch statement,
and adjust a platform check in the tests.
2010-09-06 16:04:10 +00:00
Brian Curtin
b42a21df11
Include Windows.h for BOOL. 2.7 and 3.2 already had this due to
...
a feature 3.1 doesn't have. Followup to #9324 .
2010-08-06 19:52:50 +00:00
Brian Curtin
3f004b1cc0
Merged revisions 83763 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r83763 | brian.curtin | 2010-08-06 14:27:32 -0500 (Fri, 06 Aug 2010) | 3 lines
Fix #9324 : Add parameter validation to signal.signal on Windows in order
to prevent crashes.
........
2010-08-06 19:34:52 +00:00
Brian Curtin
ef9efbd69c
Fix #9324 : Add parameter validation to signal.signal on Windows in order
...
to prevent crashes.
2010-08-06 19:27:32 +00:00
Jean-Paul Calderone
6ed7ac48ec
Revert r82089. Commit was intended for a branch.
2010-06-19 19:58:37 +00:00
Jean-Paul Calderone
867c435460
merge forward from the python 2.x branch
2010-06-19 19:54:48 +00:00
Antoine Pitrou
7f14f0d8a0
Recorded merge of revisions 81032 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
r81032 | antoine.pitrou | 2010-05-09 17:52:27 +0200 (dim., 09 mai 2010) | 9 lines
Recorded merge of revisions 81029 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines
Untabify C files. Will watch buildbots.
........
................
2010-05-09 16:14:21 +00:00
Antoine Pitrou
f95a1b3c53
Recorded merge of revisions 81029 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines
Untabify C files. Will watch buildbots.
........
2010-05-09 15:52:27 +00:00
Jean-Paul Calderone
9c39bc7265
Merged revisions 81016 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
r81016 | jean-paul.calderone | 2010-05-08 23:18:57 -0400 (Sat, 08 May 2010) | 9 lines
Merged revisions 81007 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r81007 | jean-paul.calderone | 2010-05-08 16:06:02 -0400 (Sat, 08 May 2010) | 1 line
Skip signal handler re-installation if it is not necessary. Issue 8354.
........
................
2010-05-09 03:25:16 +00:00
Jean-Paul Calderone
6f137ca469
Merged revisions 81007 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r81007 | jean-paul.calderone | 2010-05-08 16:06:02 -0400 (Sat, 08 May 2010) | 1 line
Skip signal handler re-installation if it is not necessary. Issue 8354.
........
2010-05-09 03:18:57 +00:00