diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/dns/dynamic_db.c | 5 | ||||
| -rw-r--r-- | lib/dns/include/dns/dynamic_db.h | 2 |
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); |
