Lines Matching +full:wake +full:- +full:up
39 * A sleep queue is a singly linked NULL-terminated list with doubly
52 * t1(60)-->t2(60)-->t3(60)-->t4(50)-->t5(50)-->t6(30)-->t7(0)-->t8(0)
70 * t->t_priback->t_link points to the head of the next sublist. It's
101 ASSERT(tp->t_sleepq != NULL); in sleepq_unlink()
104 *tpp = tp->t_link; in sleepq_unlink()
110 if (tp->t_priforw != tp) { in sleepq_unlink()
111 tp->t_priback->t_priforw = tp->t_priforw; in sleepq_unlink()
112 tp->t_priforw->t_priback = tp->t_priback; in sleepq_unlink()
116 tp->t_link = NULL; in sleepq_unlink()
117 tp->t_sleepq = NULL; in sleepq_unlink()
118 tp->t_priforw = NULL; in sleepq_unlink()
119 tp->t_priback = NULL; in sleepq_unlink()
128 #define CMP_PRIO(t) ((DISP_PRIO(t) << 1) + (t)->t_writer)
135 pri_t tpri, next_pri, last_pri = -1; in sleepq_insert()
138 ASSERT(t->t_sleepq == NULL); /* not already on a sleep queue */ in sleepq_insert()
141 tpp = &spq->sq_first; in sleepq_insert()
147 last_tp = next_tp->t_priback; in sleepq_insert()
149 tpp = &last_tp->t_link; in sleepq_insert()
152 t->t_link = next_tp; in sleepq_insert()
155 t->t_priback = last_tp; in sleepq_insert()
156 t->t_priforw = last_tp->t_priforw; in sleepq_insert()
157 last_tp->t_priforw->t_priback = t; in sleepq_insert()
158 last_tp->t_priforw = t; in sleepq_insert()
160 t->t_priback = t->t_priforw = t; in sleepq_insert()
162 t->t_sleepq = spq; in sleepq_insert()
167 * Yank a particular thread out of sleep queue and wake it up.
177 /* wake it up */ in sleepq_unsleep()
178 t->t_sobj_ops = NULL; in sleepq_unsleep()
179 t->t_wchan = NULL; in sleepq_unsleep()
180 t->t_wchan0 = NULL; in sleepq_unsleep()
181 ASSERT(t->t_state == TS_SLEEP); in sleepq_unsleep()
190 * Yank a particular thread out of sleep queue but don't wake it up.
199 ASSERT(t->t_sleepq != NULL); in sleepq_dequeue()
201 ptl = &t->t_priback->t_link; in sleepq_dequeue()
210 ptl = &t->t_sleepq->sq_first; in sleepq_dequeue()
212 ptl = &nt->t_priback->t_link; in sleepq_dequeue()
223 tpp = &spq->sq_first; in sleepq_wakeone_chan()
225 if (tp->t_wchan == chan) { in sleepq_wakeone_chan()
226 ASSERT(tp->t_wchan0 == NULL); in sleepq_wakeone_chan()
229 tp->t_wchan = NULL; in sleepq_wakeone_chan()
230 tp->t_sobj_ops = NULL; in sleepq_wakeone_chan()
237 tp->t_schedflag |= TS_SIGNALLED; in sleepq_wakeone_chan()
238 ASSERT(tp->t_state == TS_SLEEP); in sleepq_wakeone_chan()
243 tpp = &tp->t_link; in sleepq_wakeone_chan()
254 tpp = &spq->sq_first; in sleepq_wakeall_chan()
256 if (tp->t_wchan == chan) { in sleepq_wakeall_chan()
257 ASSERT(tp->t_wchan0 == NULL); in sleepq_wakeall_chan()
260 tp->t_wchan = NULL; in sleepq_wakeall_chan()
261 tp->t_sobj_ops = NULL; in sleepq_wakeall_chan()
262 ASSERT(tp->t_state == TS_SLEEP); in sleepq_wakeall_chan()
267 tpp = &tp->t_link; in sleepq_wakeall_chan()