diff options
author | Azat Khuzhin <a3at.mail@gmail.com> | 2015-01-08 04:45:27 +0300 |
---|---|---|
committer | Azat Khuzhin <a3at.mail@gmail.com> | 2015-01-08 04:49:28 +0300 |
commit | 941faaed39760f0a16bd03db9fb173caaed7d877 (patch) | |
tree | 138506623d523ca3b9c5826a8d6a76e3a6085826 /event.c | |
parent | 597c7b259b025080f07a68aa9be486ce3584e2d1 (diff) | |
download | libevent-941faaed39760f0a16bd03db9fb173caaed7d877.tar.gz |
event: call event_disable_debug_mode() in libevent_global_shutdown()
This will avoid leaking of event_debug_map_HT_GROW
I buildin it into libevent_glboal_shutdown() because
event_disable_debug_mode() -> event_free_debug_globals() ->
event_free_debug_globals_locks() will clean event_debug_map_lock_ that
used in event_disable_debug_mode().
Diffstat (limited to 'event.c')
-rw-r--r-- | event.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -526,22 +526,24 @@ event_enable_debug_mode(void) #endif } -#if 0 void event_disable_debug_mode(void) { +#ifndef EVENT__DISABLE_DEBUG_MODE struct event_debug_entry **ent, *victim; EVLOCK_LOCK(event_debug_map_lock_, 0); for (ent = HT_START(event_debug_map, &global_debug_map); ent; ) { victim = *ent; - ent = HT_NEXT_RMV(event_debug_map,&global_debug_map, ent); + ent = HT_NEXT_RMV(event_debug_map, &global_debug_map, ent); mm_free(victim); } HT_CLEAR(event_debug_map, &global_debug_map); EVLOCK_UNLOCK(event_debug_map_lock_ , 0); -} + + event_debug_mode_on_ = 0; #endif +} struct event_base * event_base_new_with_config(const struct event_config *cfg) @@ -3798,6 +3800,7 @@ event_free_globals(void) void libevent_global_shutdown(void) { + event_disable_debug_mode(); event_free_globals(); } |