Lines Matching refs:curthread
50 static void thread_start(struct pthread *curthread);
59 struct pthread *curthread, *new_thread; in _pthread_create() local
79 curthread = _get_curthread(); in _pthread_create()
80 if ((new_thread = _thr_alloc(curthread)) == NULL) in _pthread_create()
97 if (curthread->attr.flags & PTHREAD_SCOPE_SYSTEM) in _pthread_create()
102 new_thread->attr.prio = curthread->attr.prio; in _pthread_create()
103 new_thread->attr.sched_policy = curthread->attr.sched_policy; in _pthread_create()
111 _thr_free(curthread, new_thread); in _pthread_create()
142 _thr_link(curthread, new_thread); in _pthread_create()
153 if (SHOULD_REPORT_EVENT(curthread, TD_CREATE) || cpusetp != NULL) { in _pthread_create()
154 THR_THREAD_LOCK(curthread, new_thread); in _pthread_create()
203 THR_THREAD_LOCK(curthread, new_thread); in _pthread_create()
212 _thr_try_gc(curthread, new_thread); /* thread lock released */ in _pthread_create()
222 _thr_try_gc(curthread, new_thread); in _pthread_create()
228 _thr_report_creation(curthread, new_thread); in _pthread_create()
229 THR_THREAD_UNLOCK(curthread, new_thread); in _pthread_create()
254 thread_start(struct pthread *curthread) in thread_start() argument
258 if (curthread->attr.suspend == THR_CREATE_SUSPENDED) in thread_start()
259 set = curthread->sigmask; in thread_start()
260 _thr_signal_block_setup(curthread); in thread_start()
267 THR_LOCK(curthread); in thread_start()
268 THR_UNLOCK(curthread); in thread_start()
270 if (curthread->force_exit) in thread_start()
273 if (curthread->attr.suspend == THR_CREATE_SUSPENDED) { in thread_start()
276 _thr_ast(curthread); in thread_start()
287 curthread->unwind_stackend = (char *)curthread->attr.stackaddr_attr + in thread_start()
288 curthread->attr.stacksize_attr; in thread_start()
292 _pthread_exit(curthread->start_routine(curthread->arg)); in thread_start()