summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/evas_render.c
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2021-05-18 15:10:43 +0100
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2021-05-18 15:10:43 +0100
commit4e8bd36ce8d882c1522f44d7306a7923c41bd4c0 (patch)
tree809f5e276b781b415802d0c5c04abee5e91bf3da /src/lib/evas/canvas/evas_render.c
parent14d6d85ca31372e30616a2a97d74c0061b17ef0b (diff)
evas all sync - put a limit on loops and loop while rendering still
Diffstat (limited to '')
-rw-r--r--src/lib/evas/canvas/evas_render.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index f013f23aa6..3e7c6a5add 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -2767,14 +2767,21 @@ evas_render_rendering_wait(Evas_Public_Data *evas)
2767void 2767void
2768evas_all_sync(void) 2768evas_all_sync(void)
2769{ 2769{
2770 Evas_Public_Data *evas; 2770 int loops = 0;
2771
2772 if (!_rendering_evases) return;
2773 2771
2774 evas = eina_list_data_get(eina_list_last(_rendering_evases)); 2772 while (!_rendering_evases)
2775 evas_render_rendering_wait(evas); 2773 {
2774 Evas_Public_Data *evas;
2776 2775
2777 assert(_rendering_evases == NULL); 2776 evas = eina_list_data_get(eina_list_last(_rendering_evases));
2777 evas_render_rendering_wait(evas);
2778 loops++;
2779 if (loops > 100)
2780 {
2781 fprintf(stderr, "ERROR: evas_all_sync did %i loops\n", loops);
2782 break;
2783 }
2784 }
2778} 2785}
2779 2786
2780static Eina_Bool 2787static Eina_Bool