summaryrefslogtreecommitdiffstats
path: root/lib/libthr
diff options
context:
space:
mode:
authormtm <mtm@FreeBSD.org>2003-05-29 20:40:50 +0000
committermtm <mtm@FreeBSD.org>2003-05-29 20:40:50 +0000
commit9863dd8503db3fadb6ae84c6eee25d7ee94a2a5a (patch)
treed8e91c9705dd9188702af23f722517e4ccbc0ccb /lib/libthr
parent9fcdd31cc2ba95337d023101497182b5fe36da01 (diff)
downloadFreeBSD-src-9863dd8503db3fadb6ae84c6eee25d7ee94a2a5a.zip
FreeBSD-src-9863dd8503db3fadb6ae84c6eee25d7ee94a2a5a.tar.gz
It's unnecessary to lock the thread during creation. Simply extend
the scope of the active thread list lock. Approved by: re/jhb
Diffstat (limited to 'lib/libthr')
-rw-r--r--lib/libthr/thread/thr_create.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/lib/libthr/thread/thr_create.c b/lib/libthr/thread/thr_create.c
index c86f244..0b08562 100644
--- a/lib/libthr/thread/thr_create.c
+++ b/lib/libthr/thread/thr_create.c
@@ -171,7 +171,6 @@ _pthread_create(pthread_t * thread, const pthread_attr_t * attr,
new_thread->uniqueid = next_uniqueid++;
THREAD_LIST_LOCK;
- _thread_critical_enter(new_thread);
/*
* Check if the garbage collector thread
@@ -182,8 +181,6 @@ _pthread_create(pthread_t * thread, const pthread_attr_t * attr,
/* Add the thread to the linked list of all threads: */
TAILQ_INSERT_HEAD(&_thread_list, new_thread, tle);
- THREAD_LIST_UNLOCK;
-
/*
* Create the thread.
*
@@ -200,11 +197,11 @@ _pthread_create(pthread_t * thread, const pthread_attr_t * attr,
PANIC("thr_create");
}
+ THREAD_LIST_UNLOCK;
+
/* Return a pointer to the thread structure: */
(*thread) = new_thread;
- _thread_critical_exit(new_thread);
-
/*
* Start a garbage collector thread
* if necessary.
OpenPOWER on IntegriCloud