Lines Matching refs:rr
92 __nisdb_rl_t *rr; in find_reader() local
94 for (rr = &rw->reader; rr != 0; rr = rr->next) { in find_reader()
95 if (rr->id == INV_PTHREAD_ID) { in find_reader()
96 rr = 0; in find_reader()
99 if (rr->id == id) in find_reader()
103 return (rr); in find_reader()
111 __nisdb_rl_t *rr; in __nisdb_rw_readlock_ok() local
143 __nisdb_rl_t *rr; in __nisdb_rw_force_writelock() local
174 __nisdb_rl_t *rr = 0; in __nisdb_wlock_trylock() local
208 if ((rr = find_reader(myself, rw)) != 0) { in __nisdb_wlock_trylock()
209 if (rr->count) in __nisdb_wlock_trylock()
270 if (rr != 0) { in __nisdb_wlock_trylock()
271 rr->wait = 1; in __nisdb_wlock_trylock()
275 if (rr != 0) { in __nisdb_wlock_trylock()
276 rr->wait = 0; in __nisdb_wlock_trylock()
287 if (rr != 0) { in __nisdb_wlock_trylock()
288 rr->wait = 0; in __nisdb_wlock_trylock()
318 __nisdb_rl_t *rr; in increment_reader() local
320 for (rr = &rw->reader; rr != 0; rr = rr->next) { in increment_reader()
321 if (rr->id == id || rr->id == INV_PTHREAD_ID) in increment_reader()
324 if (rw->reader_count == 0 && rr == &rw->reader) { in increment_reader()
326 rr->id = id; in increment_reader()
328 } else if (rr == 0) { in increment_reader()
329 if ((rr = malloc(sizeof (__nisdb_rl_t))) == 0) in increment_reader()
331 rr->id = id; in increment_reader()
332 rr->count = 0; in increment_reader()
337 rr->next = rw->reader.next; in increment_reader()
338 rw->reader.next = rr; in increment_reader()
341 rr->count++; in increment_reader()
343 return (rr); in increment_reader()
352 __nisdb_rl_t *rr; in __nisdb_rlock() local
376 rr = find_reader(myself, rw); in __nisdb_rlock()
380 if (rr != 0) { in __nisdb_rlock()
381 rr->wait = 1; in __nisdb_rlock()
385 if (rr != 0) { in __nisdb_rlock()
386 rr->wait = 0; in __nisdb_rlock()
397 if (rr != 0) { in __nisdb_rlock()
398 rr->wait = 0; in __nisdb_rlock()
408 rr = increment_reader(myself, rw); in __nisdb_rlock()
410 return ((rr == 0) ? ENOMEM : ret); in __nisdb_rlock()
468 __nisdb_rl_t *rr, *prev; in __nisdb_rulock() local
502 for (rr = &rw->reader, prev = 0; rr != 0; prev = rr, rr = rr->next) { in __nisdb_rulock()
503 if (rr->id == myself) in __nisdb_rulock()
507 if (rr == 0 || rr->count == 0) { in __nisdb_rulock()
515 rr->count--; in __nisdb_rulock()
516 if (rr->count == 0) { in __nisdb_rulock()
517 if (rr != &rw->reader) { in __nisdb_rulock()
519 prev->next = rr->next; in __nisdb_rulock()
520 free(rr); in __nisdb_rulock()
526 if (rr->next != 0) { in __nisdb_rulock()
527 rr = rr->next; in __nisdb_rulock()
528 rw->reader.id = rr->id; in __nisdb_rulock()
529 rw->reader.count = rr->count; in __nisdb_rulock()
530 rw->reader.next = rr->next; in __nisdb_rulock()
531 free(rr); in __nisdb_rulock()
534 rr->id = INV_PTHREAD_ID; in __nisdb_rulock()
597 __nisdb_rl_t *rr; in __nisdb_assert_rheld() local
632 rr = &rw->reader; in __nisdb_assert_rheld()
634 if (rr->id == myself) { in __nisdb_assert_rheld()
638 rr = rr->next; in __nisdb_assert_rheld()
639 } while (rr != 0); in __nisdb_assert_rheld()
651 __nisdb_rl_t *rr; in __nisdb_destroy_lock() local