Lines Matching refs:sq

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