Lines Matching refs:curthread

43 	struct pthread *curthread = _get_curthread();  in _pthread_join()  local
48 _thr_cancel_enter(curthread); in _pthread_join()
53 _thr_cancel_leave(curthread, 1); in _pthread_join()
58 if (pthread == curthread) { in _pthread_join()
60 _thr_cancel_leave(curthread, 1); in _pthread_join()
68 if ((ret = _thr_ref_add(curthread, pthread, /*include dead*/1)) != 0) { in _pthread_join()
70 _thr_cancel_leave(curthread, 1); in _pthread_join()
74 THR_SCHED_LOCK(curthread, pthread); in _pthread_join()
77 THR_SCHED_UNLOCK(curthread, pthread); in _pthread_join()
79 _thr_ref_delete(curthread, pthread); in _pthread_join()
91 THR_SCHED_UNLOCK(curthread, pthread); in _pthread_join()
98 KSE_LOCK_ACQUIRE(curthread->kse, &_thread_list_lock); in _pthread_join()
101 KSE_LOCK_RELEASE(curthread->kse, &_thread_list_lock); in _pthread_join()
105 _thr_ref_delete(curthread, pthread); in _pthread_join()
111 THR_SCHED_UNLOCK(curthread, pthread); in _pthread_join()
112 _thr_ref_delete(curthread, pthread); in _pthread_join()
119 pthread->joiner = curthread; in _pthread_join()
122 curthread->join_status.thread = pthread; in _pthread_join()
125 THR_SCHED_UNLOCK(curthread, pthread); in _pthread_join()
126 _thr_ref_delete(curthread, pthread); in _pthread_join()
128 THR_SCHED_LOCK(curthread, curthread); in _pthread_join()
129 while (curthread->join_status.thread == pthread) { in _pthread_join()
130 THR_SET_STATE(curthread, PS_JOIN); in _pthread_join()
131 THR_SCHED_UNLOCK(curthread, curthread); in _pthread_join()
133 _thr_sched_switch(curthread); in _pthread_join()
134 THR_SCHED_LOCK(curthread, curthread); in _pthread_join()
136 THR_SCHED_UNLOCK(curthread, curthread); in _pthread_join()
138 if ((curthread->cancelflags & THR_CANCELLING) && in _pthread_join()
139 !(curthread->cancelflags & PTHREAD_CANCEL_DISABLE)) { in _pthread_join()
140 if (_thr_ref_add(curthread, pthread, 1) == 0) { in _pthread_join()
141 THR_SCHED_LOCK(curthread, pthread); in _pthread_join()
143 THR_SCHED_UNLOCK(curthread, pthread); in _pthread_join()
144 _thr_ref_delete(curthread, pthread); in _pthread_join()
153 ret = curthread->join_status.error; in _pthread_join()
155 *thread_return = curthread->join_status.ret; in _pthread_join()
158 _thr_cancel_leave(curthread, 1); in _pthread_join()