summaryrefslogtreecommitdiffstats
path: root/lib/libpthread/thread/thr_create.c
diff options
context:
space:
mode:
authordeischen <deischen@FreeBSD.org>2004-08-12 12:12:12 +0000
committerdeischen <deischen@FreeBSD.org>2004-08-12 12:12:12 +0000
commit0340faafa1e860a32729f20649b0e508d257006e (patch)
treef5cde2cd4e3f3ec2684cfd283ab1b57e8981d4b1 /lib/libpthread/thread/thr_create.c
parent328c4c7fcefd02207b2a88ae95b841d9721afeec (diff)
downloadFreeBSD-src-0340faafa1e860a32729f20649b0e508d257006e.zip
FreeBSD-src-0340faafa1e860a32729f20649b0e508d257006e.tar.gz
As long as we have a knob to force system scope threads, why not have
a knob to force process scope threads. If the environment variable LIBPTHREAD_PROCESS_SCOPE is set, force all threads to be process scope threads regardless of how the application creates them. If LIBPTHREAD_SYSTEM_SCOPE is set (forcing system scope threads), it overrides LIBPTHREAD_PROCESS_SCOPE. $ # To force system scope threads $ LIBPTHREAD_SYSTEM_SCOPE=anything threaded_app $ # To force process scope threads $ LIBPTHREAD_PROCESS_SCOPE=anything threaded_app
Diffstat (limited to 'lib/libpthread/thread/thr_create.c')
-rw-r--r--lib/libpthread/thread/thr_create.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/libpthread/thread/thr_create.c b/lib/libpthread/thread/thr_create.c
index 8c4592a..54bcd3b 100644
--- a/lib/libpthread/thread/thr_create.c
+++ b/lib/libpthread/thread/thr_create.c
@@ -126,8 +126,11 @@ _pthread_create(pthread_t * thread, const pthread_attr_t * attr,
*/
}
}
- if (_thread_scope_system != 0)
+ if (_thread_scope_system > 0)
new_thread->attr.flags |= PTHREAD_SCOPE_SYSTEM;
+ else if ((_thread_scope_system < 0)
+ && (thread != &_thr_sig_daemon))
+ new_thread->attr.flags &= ~PTHREAD_SCOPE_SYSTEM;
if (create_stack(&new_thread->attr) != 0) {
/* Insufficient memory to create a stack: */
ret = EAGAIN;
OpenPOWER on IntegriCloud