]> git.sur5r.net Git - openldap/commit
Fix dbcache/entry lock deadlock. If dbcache lock is held, it's
authorKurt Zeilenga <kurt@openldap.org>
Thu, 4 Feb 1999 18:00:50 +0000 (18:00 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Thu, 4 Feb 1999 18:00:50 +0000 (18:00 +0000)
commit366701bdf7dd6b2d78f46f710ebec1c9fde2899d
treed5131113a5465774b2693262340218fc8b9ad120
parent6b05425d0f853892b5baca8bea9d4bd3cd45c6a1
Fix dbcache/entry lock deadlock.  If dbcache lock is held, it's
okay to read and write LDBM specific fields (state, refcnt,
LRU.  The id field, though is read-only once set.
cache_find_entry_dn2id(), hence, does not require any entry locks.
cache_find_entry_id() must do a entry_rdwr_trylock() and back
off if busy.
Add new rdwr lock code with trylock() functionality.
Implement entry_rdwr_trylock().
include/ldap_pvt_thread.h
libraries/libldap_r/rdwr.c
servers/slapd/back-ldbm/cache.c
servers/slapd/back-ldbm/id2entry.c
servers/slapd/entry.c