fix mainloop begin/quit then begin again issue.

SVN revision: 71419
This commit is contained in:
Carsten Haitzler 2012-05-25 09:18:48 +00:00
parent c3ace0d8e3
commit 3280ada8e9
2 changed files with 11 additions and 0 deletions

View File

@ -675,3 +675,11 @@
will hold a loop busy and not allow feedback workers to run,
so now have fairer scheduling.
* Allow 16 * cpu num for worker threads (default still cpu num)
2012-05-25 Carsten Haitzler (The Rasterman)
* Fix ecore mainloop issue if you begin the mainloop, keep a
timer around, quit mainloop, then start it again expecting the timer
to keep ticking off. also happens to be an issuw with
iterating the mainloop.

View File

@ -860,6 +860,7 @@ ecore_main_loop_iterate(void)
EINA_MAIN_LOOP_CHECK_RETURN;
#ifndef USE_G_MAIN_LOOP
_ecore_lock();
_ecore_time_loop_time = ecore_time_get();
_ecore_main_loop_iterate_internal(1);
_ecore_unlock();
#else
@ -890,6 +891,7 @@ ecore_main_loop_iterate_may_block(int may_block)
EINA_MAIN_LOOP_CHECK_RETURN_VAL(0);
#ifndef USE_G_MAIN_LOOP
_ecore_lock();
_ecore_time_loop_time = ecore_time_get();
in_main_loop++;
_ecore_main_loop_iterate_internal(!may_block);
in_main_loop--;
@ -925,6 +927,7 @@ ecore_main_loop_begin(void)
#ifndef USE_G_MAIN_LOOP
_ecore_lock();
in_main_loop++;
_ecore_time_loop_time = ecore_time_get();
while (do_quit == 0) _ecore_main_loop_iterate_internal(0);
do_quit = 0;
in_main_loop--;