]> git.sur5r.net Git - openldap/commitdiff
Fix cache asserts on entry writer locks.
authorKurt Zeilenga <kurt@openldap.org>
Sun, 7 Feb 1999 02:50:10 +0000 (02:50 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Sun, 7 Feb 1999 02:50:10 +0000 (02:50 +0000)
servers/slapd/back-ldbm/cache.c

index 955d9c67a2ce9ff53dd50bdfd21988a02698eca5..8d3e84d7e913a99e84c8bd15fc56aa6a19244abe 100644 (file)
@@ -215,7 +215,7 @@ cache_add_entry_lock(
 
                        /* XXX check for writer lock - should also check no readers pending */
 #ifdef LDAP_DEBUG
-                       assert(!ldap_pvt_thread_rdwr_active( &e->e_rdwr ));
+                       assert(ldap_pvt_thread_rdwr_writers( &e->e_rdwr ) == 1);
 #endif
 
                        /* delete from cache and lru q */
@@ -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 */