diff --git a/exec/coroipcs.c b/exec/coroipcs.c index 29655ba3..dbafb18e 100644 --- a/exec/coroipcs.c +++ b/exec/coroipcs.c @@ -527,8 +527,8 @@ static inline int conn_info_destroy (struct conn_info *conn_info) * Retry library exit function if busy */ if (conn_info->state == CONN_STATE_THREAD_DESTROYED) { - api->stats_destroy_connection (conn_info->stats_handle); res = api->exit_fn_get (conn_info->service) (conn_info); + api->stats_destroy_connection (conn_info->stats_handle); if (res == -1) { api->serialize_unlock (); return (0); diff --git a/services/confdb.c b/services/confdb.c index 31877182..b57a0412 100644 --- a/services/confdb.c +++ b/services/confdb.c @@ -348,7 +348,7 @@ static int confdb_lib_exit_fn (void *conn) api->object_track_stop(confdb_notify_lib_of_key_change, confdb_notify_lib_of_new_object, confdb_notify_lib_of_destroyed_object, - NULL, + confdb_notify_lib_of_reload, conn); return (0); } @@ -857,6 +857,7 @@ retry_write: if (written == sizeof(struct confdb_ipc_message_holder)) { return 0; } else { + api->ipc_refcnt_dec(conn); return -1; } }