From ece345fac8161a59b710d62dcacd246f0602ae8e Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Sun, 7 Feb 1999 19:24:50 +0000 Subject: [PATCH] Import fixes for cache assert problems from devel. --- CHANGES | 1 + servers/slapd/back-ldbm/cache.c | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGES b/CHANGES index 4d1ef0c49f..731882db7b 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,7 @@ OpenLDAP Change Log Changes included in OpenLDAP 1.2 CVS Tag: OPENLDAP_REL_ENG_1_2 + Fixed slapd/back-ldbm/cache entry lock assert bugs Build environment Fixed build/man.mk "ln -sf" bug diff --git a/servers/slapd/back-ldbm/cache.c b/servers/slapd/back-ldbm/cache.c index 955d9c67a2..46d8c655b6 100644 --- a/servers/slapd/back-ldbm/cache.c +++ b/servers/slapd/back-ldbm/cache.c @@ -213,7 +213,7 @@ cache_add_entry_lock( == 0 && cache->c_cursize > cache->c_maxsize ) { e = cache->c_lrutail; - /* XXX check for writer lock - should also check no readers pending */ + /* check for active readers/writer lock */ #ifdef LDAP_DEBUG assert(!ldap_pvt_thread_rdwr_active( &e->e_rdwr )); #endif @@ -386,14 +386,14 @@ cache_delete_entry( Debug( LDAP_DEBUG_TRACE, "====> cache_delete_entry:\n", 0, 0, 0 ); + /* set cache mutex */ + ldap_pvt_thread_mutex_lock( &cache->c_mutex ); + /* XXX check for writer lock - should also check no readers pending */ #ifdef LDAP_DEBUG - assert(ldap_pvt_thread_rdwr_writers(&e->e_rdwr)); + assert(ldap_pvt_thread_rdwr_writers( &e->e_rdwr ) == 1); #endif - /* set cache mutex */ - ldap_pvt_thread_mutex_lock( &cache->c_mutex ); - rc = cache_delete_entry_internal( cache, e ); /* free cache mutex */ -- 2.47.2