Lines Matching defs:sq
63 struct sleepqueue *sq;
65 sq = __thr_calloc(1, sizeof(struct sleepqueue));
66 TAILQ_INIT(&sq->sq_blocked);
67 SLIST_INIT(&sq->sq_freeq);
68 return (sq);
72 _sleepq_free(struct sleepqueue *sq)
74 __thr_free(sq);
100 struct sleepqueue *sq;
102 LIST_FOREACH(sq, &sc->sc_queues, sq_hash)
103 if (sq->sq_wchan == wchan)
104 return (sq);
118 struct sleepqueue *sq;
121 sq = lookup(sc, wchan);
122 if (sq != NULL) {
123 SLIST_INSERT_HEAD(&sq->sq_freeq, td->sleepqueue, sq_flink);
125 sq = td->sleepqueue;
126 LIST_INSERT_HEAD(&sc->sc_queues, sq, sq_hash);
127 sq->sq_wchan = wchan;
128 /* sq->sq_type = type; */
133 TAILQ_INSERT_HEAD(&sq->sq_blocked, td, wle);
135 TAILQ_INSERT_TAIL(&sq->sq_blocked, td, wle);
139 _sleepq_remove(struct sleepqueue *sq, struct pthread *td)
143 TAILQ_REMOVE(&sq->sq_blocked, td, wle);
144 if (TAILQ_EMPTY(&sq->sq_blocked)) {
145 LIST_REMOVE(sq, sq_hash);
146 td->sleepqueue = sq;
149 td->sleepqueue = SLIST_FIRST(&sq->sq_freeq);
150 SLIST_REMOVE_HEAD(&sq->sq_freeq, sq_flink);
158 _sleepq_drop(struct sleepqueue *sq,
164 td = TAILQ_FIRST(&sq->sq_blocked);
167 LIST_REMOVE(sq, sq_hash);
168 TAILQ_REMOVE(&sq->sq_blocked, td, wle);
171 td->sleepqueue = sq;
173 sq2 = SLIST_FIRST(&sq->sq_freeq);
174 TAILQ_FOREACH(td, &sq->sq_blocked, wle) {
181 TAILQ_INIT(&sq->sq_blocked);
182 SLIST_INIT(&sq->sq_freeq);