ecore: use Eina_Future variant for job internally to.
This commit is contained in:
parent
15daf4b3e4
commit
5bc465253b
|
@ -3127,26 +3127,27 @@ _efl_loop_arguments_cleanup(Eina_Array *arga)
|
||||||
eina_array_free(arga);
|
eina_array_free(arga);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static Eina_Value
|
||||||
_efl_loop_arguments_send(void *data, const Efl_Event *ev EINA_UNUSED)
|
_efl_loop_arguments_send(void *data, const Eina_Value v,
|
||||||
|
const Eina_Future *dead EINA_UNUSED)
|
||||||
{
|
{
|
||||||
static Eina_Bool initialization = EINA_TRUE;
|
static Eina_Bool initialization = EINA_TRUE;
|
||||||
Efl_Loop_Arguments arge;
|
Efl_Loop_Arguments arge;
|
||||||
Eina_Array *arga = data;
|
Eina_Array *arga = data;
|
||||||
|
|
||||||
|
if (v.type == EINA_VALUE_TYPE_ERROR)
|
||||||
|
goto on_error;
|
||||||
|
|
||||||
arge.argv = arga;
|
arge.argv = arga;
|
||||||
arge.initialization = initialization;
|
arge.initialization = initialization;
|
||||||
initialization = EINA_FALSE;
|
initialization = EINA_FALSE;
|
||||||
|
|
||||||
efl_event_callback_call(ecore_main_loop_get(), EFL_LOOP_EVENT_ARGUMENTS, &arge);
|
efl_event_callback_call(ecore_main_loop_get(), EFL_LOOP_EVENT_ARGUMENTS, &arge);
|
||||||
|
|
||||||
|
on_error:
|
||||||
_efl_loop_arguments_cleanup(arga);
|
_efl_loop_arguments_cleanup(arga);
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
return v;
|
||||||
_efl_loop_arguments_cancel(void *data, const Efl_Event *ev EINA_UNUSED)
|
|
||||||
{
|
|
||||||
_efl_loop_arguments_cleanup(data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// It doesn't make sense to send those argument to any other mainloop
|
// It doesn't make sense to send those argument to any other mainloop
|
||||||
|
@ -3155,7 +3156,7 @@ _efl_loop_arguments_cancel(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||||
EAPI void
|
EAPI void
|
||||||
ecore_loop_arguments_send(int argc, const char **argv)
|
ecore_loop_arguments_send(int argc, const char **argv)
|
||||||
{
|
{
|
||||||
Efl_Future *job;
|
Eina_Future *job;
|
||||||
Eina_Array *arga;
|
Eina_Array *arga;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
|
@ -3163,8 +3164,9 @@ ecore_loop_arguments_send(int argc, const char **argv)
|
||||||
for (i = 0; i < argc; i++)
|
for (i = 0; i < argc; i++)
|
||||||
eina_array_push(arga, eina_stringshare_add(argv[i]));
|
eina_array_push(arga, eina_stringshare_add(argv[i]));
|
||||||
|
|
||||||
job = efl_loop_job(ecore_main_loop_get(), NULL);
|
job = eina_future_then(efl_loop_Eina_FutureXXX_job(ecore_main_loop_get()),
|
||||||
efl_future_then(job, _efl_loop_arguments_send, _efl_loop_arguments_cancel, NULL, arga);
|
_efl_loop_arguments_send, arga);
|
||||||
|
efl_future_Eina_FutureXXX_then(ecore_main_loop_get(), job);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only one main loop handle for now
|
// Only one main loop handle for now
|
||||||
|
|
Loading…
Reference in New Issue