diff options
author | Gustavo Sverzut Barbieri <barbieri@profusion.mobi> | 2016-12-19 11:37:24 -0200 |
---|---|---|
committer | Gustavo Sverzut Barbieri <barbieri@profusion.mobi> | 2016-12-19 13:03:33 -0200 |
commit | 482437ee14885a21a94ee0d110474253ae3202ab (patch) | |
tree | 3145756f8a3d660b7d811aa0b58507d043a030bf /src | |
parent | d0a626351946cc7eee7c0c9da1d142e763097153 (diff) |
ecore_con/ecore_ipc: keep log domain alive after shutdown.
These legacy API had the nasty behavior of keeping handles alive until
the pending events were dispatched, this could happen after the module
itself was shutdown, resulting in log to unregistered domains.
Then do not unregister the domain -- eina_shutdown will avoid leaks
anyway.
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/ecore_con/ecore_con.c | 15 | ||||
-rw-r--r-- | src/lib/ecore_ipc/ecore_ipc.c | 22 |
2 files changed, 25 insertions, 12 deletions
diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c index 6954d174fd..58e0805955 100644 --- a/src/lib/ecore_con/ecore_con.c +++ b/src/lib/ecore_con/ecore_con.c | |||
@@ -92,10 +92,13 @@ ecore_con_init(void) | |||
92 | if (!ecore_init()) | 92 | if (!ecore_init()) |
93 | goto ecore_err; | 93 | goto ecore_err; |
94 | 94 | ||
95 | _ecore_con_log_dom = eina_log_domain_register | ||
96 | ("ecore_con", ECORE_CON_DEFAULT_LOG_COLOR); | ||
97 | if (_ecore_con_log_dom < 0) | 95 | if (_ecore_con_log_dom < 0) |
98 | goto ecore_con_log_error; | 96 | { |
97 | _ecore_con_log_dom = eina_log_domain_register | ||
98 | ("ecore_con", ECORE_CON_DEFAULT_LOG_COLOR); | ||
99 | if (_ecore_con_log_dom < 0) | ||
100 | goto ecore_con_log_error; | ||
101 | } | ||
99 | 102 | ||
100 | ecore_con_mempool_init(); | 103 | ecore_con_mempool_init(); |
101 | ecore_con_legacy_init(); | 104 | ecore_con_legacy_init(); |
@@ -159,8 +162,10 @@ ecore_con_shutdown(void) | |||
159 | 162 | ||
160 | ecore_con_legacy_shutdown(); | 163 | ecore_con_legacy_shutdown(); |
161 | 164 | ||
162 | eina_log_domain_unregister(_ecore_con_log_dom); | 165 | /* do not unregister log domain as ecore_con_servers may be pending deletion |
163 | _ecore_con_log_dom = -1; | 166 | * due Ecore_Event. |
167 | */ | ||
168 | |||
164 | ecore_shutdown(); | 169 | ecore_shutdown(); |
165 | #ifdef HAVE_EVIL | 170 | #ifdef HAVE_EVIL |
166 | evil_shutdown(); | 171 | evil_shutdown(); |
diff --git a/src/lib/ecore_ipc/ecore_ipc.c b/src/lib/ecore_ipc/ecore_ipc.c index 17f77441dc..dfacf933bc 100644 --- a/src/lib/ecore_ipc/ecore_ipc.c +++ b/src/lib/ecore_ipc/ecore_ipc.c | |||
@@ -323,13 +323,18 @@ ecore_ipc_init(void) | |||
323 | 323 | ||
324 | if (++_ecore_ipc_init_count != 1) | 324 | if (++_ecore_ipc_init_count != 1) |
325 | return _ecore_ipc_init_count; | 325 | return _ecore_ipc_init_count; |
326 | _ecore_ipc_log_dom = eina_log_domain_register | 326 | |
327 | ("ecore_ipc", ECORE_IPC_DEFAULT_LOG_COLOR); | 327 | if (_ecore_ipc_log_dom < 0) |
328 | if(_ecore_ipc_log_dom < 0) | ||
329 | { | 328 | { |
330 | EINA_LOG_ERR("Impossible to create a log domain for the Ecore IPC module."); | 329 | _ecore_ipc_log_dom = eina_log_domain_register |
331 | return --_ecore_ipc_init_count; | 330 | ("ecore_ipc", ECORE_IPC_DEFAULT_LOG_COLOR); |
331 | if(_ecore_ipc_log_dom < 0) | ||
332 | { | ||
333 | EINA_LOG_ERR("Impossible to create a log domain for the Ecore IPC module."); | ||
334 | return --_ecore_ipc_init_count; | ||
335 | } | ||
332 | } | 336 | } |
337 | |||
333 | if (!ecore_con_init()) | 338 | if (!ecore_con_init()) |
334 | return --_ecore_ipc_init_count; | 339 | return --_ecore_ipc_init_count; |
335 | 340 | ||
@@ -378,8 +383,11 @@ ecore_ipc_shutdown(void) | |||
378 | #endif | 383 | #endif |
379 | 384 | ||
380 | ecore_con_shutdown(); | 385 | ecore_con_shutdown(); |
381 | eina_log_domain_unregister(_ecore_ipc_log_dom); | 386 | |
382 | _ecore_ipc_log_dom = -1; | 387 | /* do not unregister log domain as ecore_ipc_servers may be pending deletion |
388 | * due Ecore_Event. | ||
389 | */ | ||
390 | |||
383 | return _ecore_ipc_init_count; | 391 | return _ecore_ipc_init_count; |
384 | } | 392 | } |
385 | 393 | ||