Deleted Added
full compact
thr_create.c (178446) thr_create.c (178647)
1/*
2 * Copyright (c) 2003 Daniel M. Eischen <deischen@gdeb.com>
3 * Copyright (c) 2005, David Xu <davidxu@freebsd.org>
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 10 unchanged lines hidden (view full) ---

19 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 *
1/*
2 * Copyright (c) 2003 Daniel M. Eischen <deischen@gdeb.com>
3 * Copyright (c) 2005, David Xu <davidxu@freebsd.org>
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 10 unchanged lines hidden (view full) ---

19 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 *
27 * $FreeBSD: head/lib/libthr/thread/thr_create.c 178446 2008-04-23 21:06:51Z delphij $
27 * $FreeBSD: head/lib/libthr/thread/thr_create.c 178647 2008-04-29 03:58:18Z davidxu $
28 */
29
30#include "namespace.h"
31#include <sys/types.h>
32#include <sys/rtprio.h>
33#include <sys/signalvar.h>
34#include <errno.h>
35#include <stdlib.h>

--- 151 unchanged lines hidden (view full) ---

187
188 if (ret != 0) {
189 if (!locked)
190 THR_THREAD_LOCK(curthread, new_thread);
191 new_thread->state = PS_DEAD;
192 new_thread->tid = TID_TERMINATED;
193 if (new_thread->flags & THR_FLAGS_NEED_SUSPEND) {
194 new_thread->cycle++;
28 */
29
30#include "namespace.h"
31#include <sys/types.h>
32#include <sys/rtprio.h>
33#include <sys/signalvar.h>
34#include <errno.h>
35#include <stdlib.h>

--- 151 unchanged lines hidden (view full) ---

187
188 if (ret != 0) {
189 if (!locked)
190 THR_THREAD_LOCK(curthread, new_thread);
191 new_thread->state = PS_DEAD;
192 new_thread->tid = TID_TERMINATED;
193 if (new_thread->flags & THR_FLAGS_NEED_SUSPEND) {
194 new_thread->cycle++;
195 _thr_umtx_wake(&new_thread->cycle, INT_MAX);
195 _thr_umtx_wake(&new_thread->cycle, INT_MAX, 0);
196 }
197 THR_THREAD_UNLOCK(curthread, new_thread);
198 THREAD_LIST_LOCK(curthread);
199 _thread_active_threads--;
200 new_thread->tlflags |= TLFLAGS_DETACHED;
201 _thr_ref_delete_unlocked(curthread, new_thread);
202 THREAD_LIST_UNLOCK(curthread);
203 } else if (locked) {

--- 89 unchanged lines hidden ---
196 }
197 THR_THREAD_UNLOCK(curthread, new_thread);
198 THREAD_LIST_LOCK(curthread);
199 _thread_active_threads--;
200 new_thread->tlflags |= TLFLAGS_DETACHED;
201 _thr_ref_delete_unlocked(curthread, new_thread);
202 THREAD_LIST_UNLOCK(curthread);
203 } else if (locked) {

--- 89 unchanged lines hidden ---