summaryrefslogtreecommitdiffstats
path: root/ldap/servers/slapd/back-ldbm/close.c
blob: dda51a0b53cd4e58b0fc8bfcad771da5b1de1a97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/** BEGIN COPYRIGHT BLOCK
 * Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
 * Copyright (C) 2005 Red Hat, Inc.
 * All rights reserved.
 * END COPYRIGHT BLOCK **/
/* close.c - close ldbm backend */

#include "back-ldbm.h"

int ldbm_back_close( Slapi_PBlock *pb )
{
	struct ldbminfo	*li;

    LDAPDebug( LDAP_DEBUG_TRACE, "ldbm backend syncing\n", 0, 0, 0 );
	slapi_pblock_get( pb, SLAPI_PLUGIN_PRIVATE, &li );
	
	/* Kill off any sleeping threads by setting this flag */
	PR_Lock(li->li_shutdown_mutex);
	li->li_shutdown = 1;
	PR_Unlock(li->li_shutdown_mutex);

	dblayer_flush( li );		/* just be doubly sure! */

	/* close down all the ldbm instances */
	dblayer_close( li, DBLAYER_NORMAL_MODE );

	LDAPDebug( LDAP_DEBUG_TRACE, "ldbm backend done syncing\n", 0, 0, 0 );
	return 0;
}

int ldbm_back_flush( Slapi_PBlock *pb )
{
	struct ldbminfo	*li;

	LDAPDebug( LDAP_DEBUG_TRACE, "ldbm backend flushing\n", 0, 0, 0 );
	slapi_pblock_get( pb, SLAPI_PLUGIN_PRIVATE, &li );
	dblayer_flush( li );
	LDAPDebug( LDAP_DEBUG_TRACE, "ldbm backend done flushing\n", 0, 0, 0 );
	return 0;
}

void ldbm_back_instance_set_destructor(void **arg)
{
    /*
	Objset *instance_set = (Objset *) *arg;
    */
	
	/* This function is called when the instance set is destroyed.
	 * I can't really think of anything we should do here, but that
	 * may change in the future. */
	LDAPDebug(LDAP_DEBUG_ANY, "Set of instances destroyed\n", 0, 0, 0);
}