evas all sync - put a limit on loops and loop while rendering still

This commit is contained in:
Carsten Haitzler 2021-05-18 15:10:43 +01:00
parent 14d6d85ca3
commit 4e8bd36ce8
1 changed files with 13 additions and 6 deletions

View File

@ -2767,14 +2767,21 @@ evas_render_rendering_wait(Evas_Public_Data *evas)
void void
evas_all_sync(void) evas_all_sync(void)
{ {
Evas_Public_Data *evas; int loops = 0;
if (!_rendering_evases) return; while (!_rendering_evases)
{
Evas_Public_Data *evas;
evas = eina_list_data_get(eina_list_last(_rendering_evases)); evas = eina_list_data_get(eina_list_last(_rendering_evases));
evas_render_rendering_wait(evas); evas_render_rendering_wait(evas);
loops++;
assert(_rendering_evases == NULL); if (loops > 100)
{
fprintf(stderr, "ERROR: evas_all_sync did %i loops\n", loops);
break;
}
}
} }
static Eina_Bool static Eina_Bool