summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/dns/dynamic_db.c5
-rw-r--r--lib/dns/include/dns/dynamic_db.h2
2 files changed, 4 insertions, 3 deletions
diff --git a/lib/dns/dynamic_db.c b/lib/dns/dynamic_db.c
index f11584d..5dc9644 100644
--- a/lib/dns/dynamic_db.c
+++ b/lib/dns/dynamic_db.c
@@ -226,7 +226,7 @@ cleanup:
}
void
-dns_dynamic_db_cleanup(void)
+dns_dynamic_db_cleanup(isc_boolean_t exiting)
{
dyndb_implementation_t *elem;
dyndb_implementation_t *next;
@@ -244,7 +244,8 @@ dns_dynamic_db_cleanup(void)
}
UNLOCK(&dyndb_lock);
- isc_mutex_destroy(&dyndb_lock);
+ if (exiting == ISC_TRUE)
+ isc_mutex_destroy(&dyndb_lock);
}
dns_dyndb_arguments_t *
diff --git a/lib/dns/include/dns/dynamic_db.h b/lib/dns/include/dns/dynamic_db.h
index 12f7a06..7b1c1ce 100644
--- a/lib/dns/include/dns/dynamic_db.h
+++ b/lib/dns/include/dns/dynamic_db.h
@@ -32,7 +32,7 @@ isc_result_t dns_dynamic_db_load(const char *libname, const char *name,
isc_mem_t *mctx, const char * const *argv,
dns_dyndb_arguments_t *dyndb_args);
-void dns_dynamic_db_cleanup(void);
+void dns_dynamic_db_cleanup(isc_boolean_t exiting);
dns_dyndb_arguments_t *dns_dyndb_arguments_create(isc_mem_t *mctx);
void dns_dyndb_arguments_destroy(isc_mem_t *mctx, dns_dyndb_arguments_t *args);