X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-ldbm%2Fclose.c;h=383817a5d9baf36b9c4f7cb4ba5699c069b00191;hb=08059f1633bfd9d0a709761b026bdb8e4441c6e6;hp=5ba0c64503adfdad18dc4c98c95117c9edb39b4d;hpb=4bc786f34b50aa301be6f5600f58a980070f481e;p=openldap diff --git a/servers/slapd/back-ldbm/close.c b/servers/slapd/back-ldbm/close.c index 5ba0c64503..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-2000 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 );