ecore: add the possibility to return an exit code when leaving the main loop.

This commit is contained in:
Cedric BAIL 2016-06-24 16:44:59 -07:00
parent 9bc1ad102a
commit f441859bfb
2 changed files with 9 additions and 2 deletions

View File

@ -273,6 +273,7 @@ static int _ecore_main_win32_select(int nfds,
static void _ecore_main_win32_handlers_cleanup(void); static void _ecore_main_win32_handlers_cleanup(void);
#endif #endif
static unsigned char _ecore_exit_code = 0;
static int in_main_loop = 0; static int in_main_loop = 0;
static int do_quit = 0; static int do_quit = 0;
static Ecore_Fd_Handler *fd_handlers = NULL; static Ecore_Fd_Handler *fd_handlers = NULL;
@ -2733,16 +2734,18 @@ EOLIAN static int _efl_loop_iterate_may_block(Eo *obj EINA_UNUSED, Efl_Loop_Data
return ecore_main_loop_iterate_may_block(may_block); return ecore_main_loop_iterate_may_block(may_block);
} }
EOLIAN static void EOLIAN static unsigned char
_efl_loop_begin(Eo *obj EINA_UNUSED, Efl_Loop_Data *pd EINA_UNUSED) _efl_loop_begin(Eo *obj EINA_UNUSED, Efl_Loop_Data *pd EINA_UNUSED)
{ {
ecore_main_loop_begin(); ecore_main_loop_begin();
return _ecore_exit_code;
} }
EOLIAN static void EOLIAN static void
_efl_loop_quit(Eo *obj EINA_UNUSED, Efl_Loop_Data *pd EINA_UNUSED) _efl_loop_quit(Eo *obj EINA_UNUSED, Efl_Loop_Data *pd EINA_UNUSED, unsigned char exit_code)
{ {
ecore_main_loop_quit(); ecore_main_loop_quit();
_ecore_exit_code = exit_code;
} }
EOLIAN static Eo_Base * EOLIAN static Eo_Base *

View File

@ -29,10 +29,14 @@ class Efl.Loop (Eo.Base)
} }
begin { begin {
[[Runs the application main loop.]] [[Runs the application main loop.]]
return: ubyte; [[Value set by quit()]]
} }
quit { quit {
[[Quits the main loop once all the events currently on the queue have [[Quits the main loop once all the events currently on the queue have
been processed.]] been processed.]]
params {
@in exit_code: ubyte; [[Returned value by begin()]]
}
} }
job { job {
[[Will execute that promise in the near future.]] [[Will execute that promise in the near future.]]