Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_umtx.c
Show First 20 Lines • Show All 726 Lines • ▼ Show 20 Lines | if (p->p_flag & P_SINGLE_EXIT) | ||||
error = EINTR; | error = EINTR; | ||||
else if (P_SHOULDSTOP(p) || | else if (P_SHOULDSTOP(p) || | ||||
((p->p_flag & P_TRACED) && (td->td_dbgflags & TDB_SUSPEND))) | ((p->p_flag & P_TRACED) && (td->td_dbgflags & TDB_SUSPEND))) | ||||
error = sleep ? thread_suspend_check(0) : ERESTART; | error = sleep ? thread_suspend_check(0) : ERESTART; | ||||
PROC_UNLOCK(p); | PROC_UNLOCK(p); | ||||
return (error); | return (error); | ||||
} | } | ||||
int | |||||
thread_check_susp(struct thread *td, bool sleep) | |||||
{ | |||||
return (umtxq_check_susp(td, sleep)); | |||||
} | |||||
/* | /* | ||||
* Wake up threads waiting on an userland object. | * Wake up threads waiting on an userland object. | ||||
*/ | */ | ||||
static int | static int | ||||
umtxq_signal_queue(struct umtx_key *key, int n_wake, int q) | umtxq_signal_queue(struct umtx_key *key, int n_wake, int q) | ||||
{ | { | ||||
struct umtxq_queue *uh; | struct umtxq_queue *uh; | ||||
▲ Show 20 Lines • Show All 3,970 Lines • Show Last 20 Lines |