X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-ldbm%2Fclose.c;h=383817a5d9baf36b9c4f7cb4ba5699c069b00191;hb=08059f1633bfd9d0a709761b026bdb8e4441c6e6;hp=9aa2ca4169d22438a172e4ac28f59e076581141b;hpb=403f4479bc9f9a864122d4aeecf7284408918302;p=openldap diff --git a/servers/slapd/back-ldbm/close.c b/servers/slapd/back-ldbm/close.c index 9aa2ca4169..383817a5d9 100644 --- a/servers/slapd/back-ldbm/close.c +++ b/servers/slapd/back-ldbm/close.c @@ -1,7 +1,7 @@ /* close.c - close ldbm backend */ /* $OpenLDAP$ */ /* - * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved. + * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ @@ -17,9 +17,27 @@ int ldbm_back_db_close( Backend *be ) { + struct ldbminfo *li = (struct ldbminfo *) be->be_private; + if ( li->li_dbsyncfreq > 0 ) + { + li->li_dbshutdown++; + ldap_pvt_thread_join( li->li_dbsynctid, (void *) NULL ); + } +#ifdef NEW_LOGGING + LDAP_LOG( BACK_LDBM, CRIT, + "ldbm_back_db_close: ldbm backend syncing\n", 0, 0, 0 ); +#else Debug( LDAP_DEBUG_TRACE, "ldbm backend syncing\n", 0, 0, 0 ); +#endif + ldbm_cache_flush_all( be ); +#ifdef NEW_LOGGING + LDAP_LOG( BACK_LDBM, CRIT, + "ldbm_back_db_close: ldbm backend synch'ed\n", 0, 0, 0 ); +#else Debug( LDAP_DEBUG_TRACE, "ldbm backend done syncing\n", 0, 0, 0 ); +#endif + cache_release_all( &((struct ldbminfo *) be->be_private)->li_cache );