Antoine Pitrou [Sun, 10 Apr 2011 22:18:59 +0000 (00:18 +0200)]
Issue #8428: Fix a race condition in multiprocessing.Pool when terminating
worker processes: new processes would be spawned while the pool is being
shut down. Patch by Charles-François Natali.
Antoine Pitrou [Sat, 9 Apr 2011 21:49:58 +0000 (23:49 +0200)]
Issue #11757: select.select() now raises ValueError when a negative timeout
is passed (previously, a select.error with EINVAL would be raised). Patch
by Charles-François Natali.
Ned Deily [Sat, 9 Apr 2011 19:32:12 +0000 (12:32 -0700)]
Issue #9670: Increase the default stack size for secondary threads on
Mac OS X and FreeBSD to reduce the chances of a crash instead of a
"maximum recursion depth" RuntimeError exception.
(Patch by Ronald Oussoren)
Victor Stinner [Sat, 9 Apr 2011 14:01:55 +0000 (16:01 +0200)]
(Merge 3.2) Issue #11650: PyOS_StdioReadline() retries fgets() if it was
interrupted (EINTR), for example if the program is stopped with CTRL+z on Mac
OS X. Patch written by Charles-Francois Natali.
Victor Stinner [Sat, 9 Apr 2011 13:59:25 +0000 (15:59 +0200)]
(Merge 3.1) Issue #11650: PyOS_StdioReadline() retries fgets() if it was
interrupted (EINTR), for example if the program is stopped with CTRL+z on Mac
OS X. Patch written by Charles-Francois Natali.
Victor Stinner [Sat, 9 Apr 2011 13:55:44 +0000 (15:55 +0200)]
Issue #11650: PyOS_StdioReadline() retries fgets() if it was interrupted
(EINTR), for example if the program is stopped with CTRL+z on Mac OS X. Patch
written by Charles-Francois Natali.
Victor Stinner [Fri, 8 Apr 2011 10:57:06 +0000 (12:57 +0200)]
faulthandler: one more time, fix usage of locks in the watchdog thread
* Write a new test to ensure that dump_tracebacks_later() still works if
it was already called and then cancelled before
* Don't use a variable to check the status of the thread, only rely on locks
* The thread only releases cancel_event if it was able to acquire it (if
the timer was interrupted)
* The main thread always hold this lock. It is only released when
faulthandler_thread() is interrupted until this thread exits, or at Python
exit.
Barry Warsaw [Thu, 7 Apr 2011 14:48:29 +0000 (10:48 -0400)]
Refinement by Stefan Krah (see issue 11715, msg133194) to exit early if the
dpkg-architecture command is not found on $PATH. This should fix the failures
on FreeBSD and Solaris, which do not create the target file via I/O
redirection if the command isn't found (unlike Linux and OS X which do).
Barry Warsaw [Thu, 7 Apr 2011 14:45:07 +0000 (10:45 -0400)]
Refinement by Stefan Krah (see issue 11715, msg133194) to exit early if the
dpkg-architecture command is not found on $PATH. This should fix the failures
on FreeBSD and Solaris, which do not create the target file via I/O
redirection if the command isn't found (unlike Linux and OS X which do).
Barry Warsaw [Thu, 7 Apr 2011 14:40:36 +0000 (10:40 -0400)]
Refinement by Stefan Krah (see issue 11715, msg133194) to exit early if the
dpkg-architecture command is not found on $PATH. This should fix the failures
on FreeBSD and Solaris, which do not create the target file via I/O
redirection if the command isn't found (unlike Linux and OS X which do).
Victor Stinner [Mon, 4 Apr 2011 21:42:30 +0000 (23:42 +0200)]
Issue #11765: don't test time.sleep() in test_faulthandler
time.time() and/or time.sleep() are not accurate on Windows, don't test them
in test_faulthandler. Anyway, the check was written for an old implementation
of dump_tracebacks_later(), it is not more needed.
The thread must not receive any signal. If the thread receives a signal,
sem_timedwait() is interrupted and returns EINTR, but in this case,
PyThread_acquire_lock_timed() retries sem_timedwait() and the main thread is
not aware of the signal. The problem is that some tests expect that the main
thread receives the signal, not faulthandler handler, which should be
invisible.
On Linux, the signal looks to be received by the main thread, whereas on
FreeBSD, it can be any thread.