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