From e931fd698d26b8bec0e34239d2f79c059b339a51 Mon Sep 17 00:00:00 2001 From: Andy Williams Date: Thu, 4 Jan 2018 11:56:01 +0000 Subject: [PATCH] promise: Add even simpler helper for main loop promise creation --- src/lib/ecore/Ecore_Eo.h | 12 ++++++++++++ src/lib/ecore/efl_loop.c | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/lib/ecore/Ecore_Eo.h b/src/lib/ecore/Ecore_Eo.h index fa5d08d798..4c6783cd5f 100644 --- a/src/lib/ecore/Ecore_Eo.h +++ b/src/lib/ecore/Ecore_Eo.h @@ -83,6 +83,18 @@ EAPI Eina_Future_Scheduler *efl_loop_future_scheduler_get(const Eo *obj); */ EAPI Eina_Promise *efl_loop_promise_new(const Eo *obj, Eina_Promise_Cancel_Cb cancel_cb, const void *data); +/** + * @brief Create a future attached to the main loop + * + * @param cancel_cb A callback used to inform that the promise was canceled. Use + * this callback to @c free @p data. @p cancel_cb must not be @c NULL ! + * @param data Data to @p cancel_cb. + * @return A promise or @c NULL on error. + * + * @see eina_promise_new() + */ +EAPI Eina_Promise *efl_loop_main_promise_new(Eina_Promise_Cancel_Cb cancel_cb, const void *data); + #include "efl_loop_fd.eo.h" #include "efl_loop_handler.eo.h" diff --git a/src/lib/ecore/efl_loop.c b/src/lib/ecore/efl_loop.c index 221ad965fd..177d26d14a 100644 --- a/src/lib/ecore/efl_loop.c +++ b/src/lib/ecore/efl_loop.c @@ -748,4 +748,14 @@ efl_loop_promise_new(const Eo *obj, Eina_Promise_Cancel_Cb cancel_cb, const void cancel_cb, data); } +EAPI Eina_Promise * +efl_loop_main_promise_new(Eina_Promise_Cancel_Cb cancel_cb, const void *data) +{ + Efl_Loop *main; + + main = efl_loop_main_get(EFL_LOOP_CLASS); + return eina_promise_new(efl_loop_future_scheduler_get(main), + cancel_cb, data); +} + #include "efl_loop.eo.c"