TS_READER_Q
queue = TS_READER_Q;
rcnt = TS_WAITERS(ts, TS_READER_Q);
turnstile_wakeup(ts, TS_READER_Q, rcnt, NULL);
rcnt = TS_WAITERS(ts, TS_READER_Q);
turnstile_wakeup(ts, TS_READER_Q, rcnt, NULL);
sleepq_init(&ts->ts_sleepq[TS_READER_Q]);
KASSERT(q == TS_READER_Q || q == TS_WRITER_Q);
KASSERT(LIST_EMPTY(&ts->ts_sleepq[TS_READER_Q]));
KASSERT(!LIST_EMPTY(&ts->ts_sleepq[TS_READER_Q]) ||
KASSERT(q == TS_READER_Q || q == TS_WRITER_Q);
rsq = &ts->ts_sleepq[TS_READER_Q];
(*pr)("=> %d waiting readers:", TS_WAITERS(ts, TS_READER_Q));
((ts)->ts_waiters[TS_READER_Q] + \