aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads/manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads/manager.c')
-rw-r--r--linuxthreads/manager.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/linuxthreads/manager.c b/linuxthreads/manager.c
index caa819002e..b244d87686 100644
--- a/linuxthreads/manager.c
+++ b/linuxthreads/manager.c
@@ -104,6 +104,8 @@ int __pthread_manager(void *arg)
/* Block all signals except __pthread_sig_cancel and SIGTRAP */
sigfillset(&mask);
sigdelset(&mask, __pthread_sig_cancel); /* for thread termination */
+ if (__pthread_sig_debug > 0)
+ sigdelset(&mask, __pthread_sig_debug); /* for debugging purposes */
sigdelset(&mask, SIGTRAP); /* for debugging purposes */
sigprocmask(SIG_SETMASK, &mask, NULL);
/* Raise our priority to match that of main thread */
@@ -162,7 +164,7 @@ int __pthread_manager(void *arg)
case REQ_DEBUG:
/* Make gdb aware of new thread */
if (__pthread_threads_debug && __pthread_sig_debug > 0)
- raise(__pthread_sig_debug);
+ raise(__pthread_sig_debug);
restart(request.req_thread);
break;
}
@@ -375,9 +377,6 @@ static int pthread_handle_create(pthread_t *thread, const pthread_attr_t *attr,
/* Do the cloning */
pid = __clone(pthread_start_thread, (void **) new_thread,
CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
-#ifdef CLONE_PTRACE
- CLONE_PTRACE |
-#endif
__pthread_sig_cancel, new_thread);
/* Check if cloning succeeded */
if (pid == -1) {