]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldbm/cache.c
Removed unnecessary definition that is already in core.schema.
[openldap] / servers / slapd / back-ldbm / cache.c
index cf7f859417c4cd5fad49ede0c705af61921d7f5b..1e6d1bbd3ef66bccf17efbf03697c8acda051a8a 100644 (file)
@@ -89,9 +89,7 @@ cache_entry_rdwr_destroy(Entry *e)
 static int
 cache_entry_private_init( Entry*e )
 {
-#ifdef LDAP_DEBUG
        assert( e->e_private == NULL );
-#endif
 
        if( e->e_private != NULL ) {
                /* this should never happen */
@@ -112,9 +110,7 @@ cache_entry_private_init( Entry*e )
 static int
 cache_entry_private_destroy( Entry*e )
 {
-#ifdef LDAP_DEBUG
        assert( e->e_private );
-#endif
 
        cache_entry_rdwr_destroy( e );
 
@@ -132,9 +128,7 @@ cache_return_entry_rw( struct cache *cache, Entry *e, int rw )
        /* set cache mutex */
        ldap_pvt_thread_mutex_lock( &cache->c_mutex );
 
-#ifdef LDAP_DEBUG
        assert( e->e_private );
-#endif
 
        cache_entry_rdwr_unlock(e, rw);
 
@@ -186,24 +180,24 @@ cache_return_entry_rw( struct cache *cache, Entry *e, int rw )
        if ( LEI(e)->lei_lruprev != NULL ) { \
                LEI(LEI(e)->lei_lruprev)->lei_lrunext = LEI(e)->lei_lrunext; \
        } else { \
-               cache->c_lruhead = LEI(e)->lei_lrunext; \
+               (cache)->c_lruhead = LEI(e)->lei_lrunext; \
        } \
        if ( LEI(e)->lei_lrunext != NULL ) { \
                LEI(LEI(e)->lei_lrunext)->lei_lruprev = LEI(e)->lei_lruprev; \
        } else { \
-               cache->c_lrutail = LEI(e)->lei_lruprev; \
+               (cache)->c_lrutail = LEI(e)->lei_lruprev; \
        } \
 } while(0)
 
 #define LRU_ADD( cache, e ) do { \
-       LEI(e)->lei_lrunext = cache->c_lruhead; \
+       LEI(e)->lei_lrunext = (cache)->c_lruhead; \
        if ( LEI(e)->lei_lrunext != NULL ) { \
-               LEI(LEI(e)->lei_lrunext)->lei_lruprev = e; \
+               LEI(LEI(e)->lei_lrunext)->lei_lruprev = (e); \
        } \
-       cache->c_lruhead = e; \
+       (cache)->c_lruhead = (e); \
        LEI(e)->lei_lruprev = NULL; \
-       if ( cache->c_lrutail == NULL ) { \
-               cache->c_lrutail = e; \
+       if ( (cache)->c_lrutail == NULL ) { \
+               (cache)->c_lrutail = (e); \
        } \
 } while(0)
 
@@ -226,13 +220,11 @@ cache_add_entry_rw(
        /* set cache mutex */
        ldap_pvt_thread_mutex_lock( &cache->c_mutex );
 
-#ifdef LDAP_DEBUG
        assert( e->e_private == NULL );
-#endif
 
        if( cache_entry_private_init(e) != 0 ) {
                /* free cache mutex */
-               ldap_pvt_thread_mutex_lock( &cache->c_mutex );
+               ldap_pvt_thread_mutex_unlock( &cache->c_mutex );
 
                Debug( LDAP_DEBUG_ANY,
                        "====> cache_add_entry( %ld ): \"%s\": private init failed!\n",
@@ -348,9 +340,7 @@ cache_update_entry(
        /* set cache mutex */
        ldap_pvt_thread_mutex_lock( &cache->c_mutex );
 
-#ifdef LDAP_DEBUG
        assert( e->e_private );
-#endif
 
        if ( avl_insert( &cache->c_dntree, (caddr_t) e,
                (AVL_CMP) entry_dn_cmp, avl_dup_error ) != 0 )
@@ -458,7 +448,7 @@ try_again:
        if ( (ep = (Entry *) avl_find( cache->c_dntree, (caddr_t) &e,
                (AVL_CMP) entry_dn_cmp )) != NULL )
        {
-               id = ep->e_id;
+               int state;
                count++;
 
                /*
@@ -469,12 +459,14 @@ try_again:
 
                assert( ep->e_private );
 
+               /* save id */
+               id = ep->e_id;
+               state = LEI(ep)->lei_state;
+
                /*
                 * entry is deleted or not fully created yet
                 */
-               if ( LEI(ep)->lei_state != CACHE_ENTRY_READY ) {
-                       int state = LEI(ep)->lei_state;
-
+               if ( state != CACHE_ENTRY_READY ) {
                        assert(state != CACHE_ENTRY_UNDEFINED);
 
                        /* free cache mutex */
@@ -485,7 +477,6 @@ try_again:
                                dn, id, state);
 
                        ldap_pvt_thread_yield();
-
                        goto try_again;
                }
 
@@ -493,9 +484,6 @@ try_again:
                LRU_DELETE( cache, ep );
                LRU_ADD( cache, ep );
                 
-               /* save id */
-               id = ep->e_id;
-
                /* free cache mutex */
                ldap_pvt_thread_mutex_unlock( &cache->c_mutex );
 
@@ -539,21 +527,22 @@ try_again:
        if ( (ep = (Entry *) avl_find( cache->c_idtree, (caddr_t) &e,
                (AVL_CMP) entry_id_cmp )) != NULL )
        {
-               int state = LEI(ep)->lei_state;
+               int state;
+               ID      ep_id;
+
                count++;
 
-#ifdef LDAP_DEBUG
                assert( ep->e_private );
-#endif
+
+               ep_id = ep->e_id; 
+               state = LEI(ep)->lei_state;
+
                /*
                 * entry is deleted or not fully created yet
                 */
                if ( state != CACHE_ENTRY_READY ) {
-                       ID      ep_id = ep->e_id; 
 
-#ifdef LDAP_DEBUG
                        assert(state != CACHE_ENTRY_UNDEFINED);
-#endif
 
                        /* free cache mutex */
                        ldap_pvt_thread_mutex_unlock( &cache->c_mutex );
@@ -575,6 +564,11 @@ try_again:
 
                        /* free cache mutex */
                        ldap_pvt_thread_mutex_unlock( &cache->c_mutex );
+
+                       Debug(LDAP_DEBUG_TRACE,
+                               "====> cache_find_entry_id( %ld ): %ld (busy) %d\n",
+                               id, ep_id, state);
+
                        ldap_pvt_thread_yield();
                        goto try_again;
                }
@@ -590,7 +584,7 @@ try_again:
 
                Debug(LDAP_DEBUG_TRACE,
                        "====> cache_find_entry_id( %ld ) \"%s\" (found) (%d tries)\n",
-                       id, ep->e_dn, count);
+                       ep_id, ep->e_dn, count);
 
                return( ep );
        }
@@ -623,9 +617,7 @@ cache_delete_entry(
        /* set cache mutex */
        ldap_pvt_thread_mutex_lock( &cache->c_mutex );
 
-#ifdef LDAP_DEBUG
        assert( e->e_private );
-#endif
 
        Debug( LDAP_DEBUG_TRACE, "====> cache_delete_entry( %ld )\n",
                e->e_id, 0, 0 );
@@ -689,9 +681,8 @@ cache_release_all( struct cache *cache )
        Debug( LDAP_DEBUG_TRACE, "====> cache_release_all\n", 0, 0, 0 );
 
        while ( (e = cache->c_lrutail) != NULL && LEI(e)->lei_refcnt == 0 ) {
-#ifdef LDAP_DEBUG
                assert(!ldap_pvt_thread_rdwr_active(&LEI(e)->lei_rdwr));
-#endif
+
                /* delete from cache and lru q */
                /* XXX do we need rc ? */
                rc = cache_delete_entry_internal( cache, e );
@@ -699,8 +690,9 @@ cache_release_all( struct cache *cache )
                entry_free( e );
        }
 
-       if ( cache->c_cursize )
+       if ( cache->c_cursize ) {
                Debug( LDAP_DEBUG_TRACE, "Entry-cache could not be emptied\n", 0, 0, 0 );
+       }
 
        /* free cache mutex */
        ldap_pvt_thread_mutex_unlock( &cache->c_mutex );