Lines Matching refs:rr

91 	__nisdb_rl_t	*rr;  in find_reader()  local
93 for (rr = &rw->reader; rr != 0; rr = rr->next) { in find_reader()
94 if (rr->id == INV_PTHREAD_ID) { in find_reader()
95 rr = 0; in find_reader()
98 if (rr->id == id) in find_reader()
102 return (rr); in find_reader()
169 __nisdb_rl_t *rr = 0; in __nisdb_wlock_trylock() local
203 if ((rr = find_reader(myself, rw)) != 0) { in __nisdb_wlock_trylock()
204 if (rr->count) { in __nisdb_wlock_trylock()
266 if (rr != 0) { in __nisdb_wlock_trylock()
267 rr->wait = 1; in __nisdb_wlock_trylock()
271 if (rr != 0) { in __nisdb_wlock_trylock()
272 rr->wait = 0; in __nisdb_wlock_trylock()
283 if (rr != 0) { in __nisdb_wlock_trylock()
284 rr->wait = 0; in __nisdb_wlock_trylock()
314 __nisdb_rl_t *rr; in increment_reader() local
316 for (rr = &rw->reader; rr != 0; rr = rr->next) { in increment_reader()
317 if (rr->id == id || rr->id == INV_PTHREAD_ID) in increment_reader()
320 if (rw->reader_count == 0 && rr == &rw->reader) { in increment_reader()
322 rr->id = id; in increment_reader()
324 } else if (rr == 0) { in increment_reader()
325 if ((rr = malloc(sizeof (__nisdb_rl_t))) == 0) in increment_reader()
327 rr->id = id; in increment_reader()
328 rr->count = 0; in increment_reader()
333 rr->next = rw->reader.next; in increment_reader()
334 rw->reader.next = rr; in increment_reader()
337 rr->count++; in increment_reader()
339 return (rr); in increment_reader()
348 __nisdb_rl_t *rr; in __nisdb_rlock() local
372 rr = find_reader(myself, rw); in __nisdb_rlock()
376 if (rr != 0) { in __nisdb_rlock()
377 rr->wait = 1; in __nisdb_rlock()
381 if (rr != 0) { in __nisdb_rlock()
382 rr->wait = 0; in __nisdb_rlock()
393 if (rr != 0) { in __nisdb_rlock()
394 rr->wait = 0; in __nisdb_rlock()
404 rr = increment_reader(myself, rw); in __nisdb_rlock()
406 return ((rr == 0) ? ENOMEM : ret); in __nisdb_rlock()
464 __nisdb_rl_t *rr, *prev; in __nisdb_rulock() local
498 for (rr = &rw->reader, prev = 0; rr != 0; prev = rr, rr = rr->next) { in __nisdb_rulock()
499 if (rr->id == myself) in __nisdb_rulock()
503 if (rr == 0 || rr->count == 0) { in __nisdb_rulock()
511 rr->count--; in __nisdb_rulock()
512 if (rr->count == 0) { in __nisdb_rulock()
513 if (rr != &rw->reader) { in __nisdb_rulock()
515 prev->next = rr->next; in __nisdb_rulock()
516 free(rr); in __nisdb_rulock()
522 if (rr->next != 0) { in __nisdb_rulock()
523 rr = rr->next; in __nisdb_rulock()
524 rw->reader.id = rr->id; in __nisdb_rulock()
525 rw->reader.count = rr->count; in __nisdb_rulock()
526 rw->reader.next = rr->next; in __nisdb_rulock()
527 free(rr); in __nisdb_rulock()
530 rr->id = INV_PTHREAD_ID; in __nisdb_rulock()
593 __nisdb_rl_t *rr; in __nisdb_assert_rheld() local
628 rr = &rw->reader; in __nisdb_assert_rheld()
630 if (rr->id == myself) { in __nisdb_assert_rheld()
634 rr = rr->next; in __nisdb_assert_rheld()
635 } while (rr != 0); in __nisdb_assert_rheld()