diff options
author | pjd <pjd@FreeBSD.org> | 2011-10-21 13:54:58 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2011-10-21 13:54:58 +0000 |
commit | c1bcd9648b0d2f90bbd5b41eed9080faa3e9909e (patch) | |
tree | 6332140238689f302a957627d3cbe18678ea75f3 /cddl/contrib/opensolaris/head | |
parent | 885aceb259e9d7fbc8faab60e939823a6bfb78e3 (diff) | |
download | FreeBSD-src-c1bcd9648b0d2f90bbd5b41eed9080faa3e9909e.zip FreeBSD-src-c1bcd9648b0d2f90bbd5b41eed9080faa3e9909e.tar.gz |
thr_create: new_thread_ID may be NULL
Submitted by: avg
MFC after: 3 days
Diffstat (limited to 'cddl/contrib/opensolaris/head')
-rw-r--r-- | cddl/contrib/opensolaris/head/thread.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/cddl/contrib/opensolaris/head/thread.h b/cddl/contrib/opensolaris/head/thread.h index 818f078..d813a25 100644 --- a/cddl/contrib/opensolaris/head/thread.h +++ b/cddl/contrib/opensolaris/head/thread.h @@ -76,6 +76,7 @@ static __inline int thr_create(void *stack_base, size_t stack_size, void *(*start_func) (void*), void *arg, long flags, thread_t *new_thread_ID) { + pthread_t dummy; int ret; assert(stack_base == NULL); @@ -85,9 +86,12 @@ thr_create(void *stack_base, size_t stack_size, void *(*start_func) (void*), pthread_attr_t attr; pthread_attr_init(&attr); - if(flags & THR_DETACHED) + if (flags & THR_DETACHED) pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); + if (new_thread_ID == NULL) + new_thread_ID = &dummy; + /* This function ignores the THR_BOUND flag, since NPTL doesn't seem to support PTHREAD_SCOPE_PROCESS */ ret = pthread_create(new_thread_ID, &attr, start_func, arg); |