]> git.sur5r.net Git - openldap/commitdiff
Import fixes for cache assert problems from devel.
authorKurt Zeilenga <kurt@openldap.org>
Sun, 7 Feb 1999 19:24:50 +0000 (19:24 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Sun, 7 Feb 1999 19:24:50 +0000 (19:24 +0000)
CHANGES
servers/slapd/back-ldbm/cache.c

diff --git a/CHANGES b/CHANGES
index 4d1ef0c49f620ab7db271770eb621b9f41391587..731882db7bed9f584949f1903da79530fd26c5cf 100644 (file)
--- 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
 
index 955d9c67a2ce9ff53dd50bdfd21988a02698eca5..46d8c655b612581aee8f4e98116a74474d8d51ed 100644 (file)
@@ -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 */