diff options
Diffstat (limited to 'tests/suite/ecore/src/lib/ecore_idle_exiter.c')
-rw-r--r-- | tests/suite/ecore/src/lib/ecore_idle_exiter.c | 211 |
1 files changed, 106 insertions, 105 deletions
diff --git a/tests/suite/ecore/src/lib/ecore_idle_exiter.c b/tests/suite/ecore/src/lib/ecore_idle_exiter.c index d8234e3001..0e9dbaf622 100644 --- a/tests/suite/ecore/src/lib/ecore_idle_exiter.c +++ b/tests/suite/ecore/src/lib/ecore_idle_exiter.c @@ -1,5 +1,5 @@ #ifdef HAVE_CONFIG_H -# include <config.h> +#include <config.h> #endif #include <stdlib.h> @@ -8,20 +8,19 @@ #include "ecore_private.h" -struct _Ecore_Idle_Exiter -{ - EINA_INLIST; - ECORE_MAGIC; - Ecore_Task_Cb func; - void *data; - int references; - Eina_Bool delete_me : 1; +struct _Ecore_Idle_Exiter { + EINA_INLIST; + ECORE_MAGIC; + Ecore_Task_Cb func; + void *data; + int references; + Eina_Bool delete_me:1; }; static Ecore_Idle_Exiter *idle_exiters = NULL; static Ecore_Idle_Exiter *idle_exiter_current = NULL; -static int idle_exiters_delete_me = 0; +static int idle_exiters_delete_me = 0; /** * Add an idle exiter handler. @@ -30,19 +29,24 @@ static int idle_exiters_delete_me = 0; * @return A handle to the idle exiter callback on success. NULL otherwise. * @ingroup Idle_Group */ -EAPI Ecore_Idle_Exiter * -ecore_idle_exiter_add(Ecore_Task_Cb func, const void *data) +EAPI Ecore_Idle_Exiter *ecore_idle_exiter_add(Ecore_Task_Cb func, + const void *data) { - Ecore_Idle_Exiter *ie; - - if (!func) return NULL; - ie = calloc(1, sizeof(Ecore_Idle_Exiter)); - if (!ie) return NULL; - ECORE_MAGIC_SET(ie, ECORE_MAGIC_IDLE_EXITER); - ie->func = func; - ie->data = (void *)data; - idle_exiters = (Ecore_Idle_Exiter *) eina_inlist_append(EINA_INLIST_GET(idle_exiters), EINA_INLIST_GET(ie)); - return ie; + Ecore_Idle_Exiter *ie; + + if (!func) + return NULL; + ie = calloc(1, sizeof(Ecore_Idle_Exiter)); + if (!ie) + return NULL; + ECORE_MAGIC_SET(ie, ECORE_MAGIC_IDLE_EXITER); + ie->func = func; + ie->data = (void *) data; + idle_exiters = + (Ecore_Idle_Exiter *) + eina_inlist_append(EINA_INLIST_GET(idle_exiters), + EINA_INLIST_GET(ie)); + return ie; } /** @@ -52,97 +56,94 @@ ecore_idle_exiter_add(Ecore_Task_Cb func, const void *data) * successful. NULL otherwise. * @ingroup Idle_Group */ -EAPI void * -ecore_idle_exiter_del(Ecore_Idle_Exiter *idle_exiter) +EAPI void *ecore_idle_exiter_del(Ecore_Idle_Exiter * idle_exiter) { - if (!ECORE_MAGIC_CHECK(idle_exiter, ECORE_MAGIC_IDLE_EXITER)) - { - ECORE_MAGIC_FAIL(idle_exiter, ECORE_MAGIC_IDLE_EXITER, - "ecore_idle_exiter_del"); - return NULL; - } - EINA_SAFETY_ON_TRUE_RETURN_VAL(idle_exiter->delete_me, NULL); - idle_exiter->delete_me = 1; - idle_exiters_delete_me = 1; - return idle_exiter->data; + if (!ECORE_MAGIC_CHECK(idle_exiter, ECORE_MAGIC_IDLE_EXITER)) { + ECORE_MAGIC_FAIL(idle_exiter, ECORE_MAGIC_IDLE_EXITER, + "ecore_idle_exiter_del"); + return NULL; + } + EINA_SAFETY_ON_TRUE_RETURN_VAL(idle_exiter->delete_me, NULL); + idle_exiter->delete_me = 1; + idle_exiters_delete_me = 1; + return idle_exiter->data; } -void -_ecore_idle_exiter_shutdown(void) +void _ecore_idle_exiter_shutdown(void) { - Ecore_Idle_Exiter *ie; - while ((ie = idle_exiters)) - { - idle_exiters = (Ecore_Idle_Exiter *) eina_inlist_remove(EINA_INLIST_GET(idle_exiters), EINA_INLIST_GET(idle_exiters)); - ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE); - free(ie); - } - idle_exiters_delete_me = 0; - idle_exiter_current = NULL; + Ecore_Idle_Exiter *ie; + while ((ie = idle_exiters)) { + idle_exiters = + (Ecore_Idle_Exiter *) + eina_inlist_remove(EINA_INLIST_GET(idle_exiters), + EINA_INLIST_GET(idle_exiters)); + ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE); + free(ie); + } + idle_exiters_delete_me = 0; + idle_exiter_current = NULL; } -void -_ecore_idle_exiter_call(void) +void _ecore_idle_exiter_call(void) { - if (!idle_exiter_current) - { - /* regular main loop, start from head */ - idle_exiter_current = idle_exiters; - } - else - { - /* recursive main loop, continue from where we were */ - idle_exiter_current = - (Ecore_Idle_Exiter *)EINA_INLIST_GET(idle_exiter_current)->next; - } - - while (idle_exiter_current) - { - Ecore_Idle_Exiter *ie = (Ecore_Idle_Exiter *)idle_exiter_current; - if (!ie->delete_me) - { - ie->references++; - if (!ie->func(ie->data)) - { - if (!ie->delete_me) ecore_idle_exiter_del(ie); - } - ie->references--; - } - if (idle_exiter_current) /* may have changed in recursive main loops */ - idle_exiter_current = - (Ecore_Idle_Exiter *)EINA_INLIST_GET(idle_exiter_current)->next; - } - if (idle_exiters_delete_me) - { - Ecore_Idle_Exiter *l; - int deleted_idler_exiters_in_use = 0; - - for (l = idle_exiters; l;) - { - Ecore_Idle_Exiter *ie = l; - - l = (Ecore_Idle_Exiter *) EINA_INLIST_GET(l)->next; - if (ie->delete_me) - { - if (ie->references) - { - deleted_idler_exiters_in_use++; - continue; - } - - idle_exiters = (Ecore_Idle_Exiter *) eina_inlist_remove(EINA_INLIST_GET(idle_exiters), EINA_INLIST_GET(ie)); - ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE); - free(ie); - } - } - if (!deleted_idler_exiters_in_use) - idle_exiters_delete_me = 0; - } + if (!idle_exiter_current) { + /* regular main loop, start from head */ + idle_exiter_current = idle_exiters; + } else { + /* recursive main loop, continue from where we were */ + idle_exiter_current = + (Ecore_Idle_Exiter *) + EINA_INLIST_GET(idle_exiter_current)->next; + } + + while (idle_exiter_current) { + Ecore_Idle_Exiter *ie = + (Ecore_Idle_Exiter *) idle_exiter_current; + if (!ie->delete_me) { + ie->references++; + if (!ie->func(ie->data)) { + if (!ie->delete_me) + ecore_idle_exiter_del(ie); + } + ie->references--; + } + if (idle_exiter_current) /* may have changed in recursive main loops */ + idle_exiter_current = + (Ecore_Idle_Exiter *) + EINA_INLIST_GET(idle_exiter_current)->next; + } + if (idle_exiters_delete_me) { + Ecore_Idle_Exiter *l; + int deleted_idler_exiters_in_use = 0; + + for (l = idle_exiters; l;) { + Ecore_Idle_Exiter *ie = l; + + l = (Ecore_Idle_Exiter *) EINA_INLIST_GET(l)->next; + if (ie->delete_me) { + if (ie->references) { + deleted_idler_exiters_in_use++; + continue; + } + + idle_exiters = + (Ecore_Idle_Exiter *) + eina_inlist_remove(EINA_INLIST_GET + (idle_exiters), + EINA_INLIST_GET + (ie)); + ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE); + free(ie); + } + } + if (!deleted_idler_exiters_in_use) + idle_exiters_delete_me = 0; + } } -int -_ecore_idle_exiter_exist(void) +int _ecore_idle_exiter_exist(void) { - if (idle_exiters) return 1; - return 0; + if (idle_exiters) + return 1; + return 0; } |