diff options
author | Michael W. Hudson <mwh@python.net> | 2004-07-07 17:44:12 (GMT) |
---|---|---|
committer | Michael W. Hudson <mwh@python.net> | 2004-07-07 17:44:12 (GMT) |
commit | 30ea2f223f5c0a85a13bd893063555a9f587cd6d (patch) | |
tree | d9ad0b824eb899d1163043d982dd7d961b11a263 /Python/thread_pthread.h | |
parent | e3c330b42a5dbc64a254354e906885134a852949 (diff) | |
download | cpython-30ea2f223f5c0a85a13bd893063555a9f587cd6d.zip cpython-30ea2f223f5c0a85a13bd893063555a9f587cd6d.tar.gz cpython-30ea2f223f5c0a85a13bd893063555a9f587cd6d.tar.bz2 |
This closes patch:
[ 960406 ] unblock signals in threads
although the changes do not correspond exactly to any patch attached to
that report.
Non-main threads no longer have all signals masked.
A different interface to readline is used.
The handling of signals inside calls to PyOS_Readline is now rather
different.
These changes are all a bit scary! Review and cross-platform testing
much appreciated.
Diffstat (limited to 'Python/thread_pthread.h')
-rw-r--r-- | Python/thread_pthread.h | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h index d18d2de..dd1616c 100644 --- a/Python/thread_pthread.h +++ b/Python/thread_pthread.h @@ -119,7 +119,6 @@ PyThread_start_new_thread(void (*func)(void *), void *arg) { pthread_t th; int status; - sigset_t oldmask, newmask; #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED) pthread_attr_t attrs; #endif @@ -137,13 +136,6 @@ PyThread_start_new_thread(void (*func)(void *), void *arg) pthread_attr_setscope(&attrs, PTHREAD_SCOPE_SYSTEM); #endif - /* Mask all signals in the current thread before creating the new - * thread. This causes the new thread to start with all signals - * blocked. - */ - sigfillset(&newmask); - SET_THREAD_SIGMASK(SIG_BLOCK, &newmask, &oldmask); - status = pthread_create(&th, #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED) &attrs, @@ -154,9 +146,6 @@ PyThread_start_new_thread(void (*func)(void *), void *arg) (void *)arg ); - /* Restore signal mask for original thread */ - SET_THREAD_SIGMASK(SIG_SETMASK, &oldmask, NULL); - #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED) pthread_attr_destroy(&attrs); #endif |