From 000beb2f17ff17c3ca600586457c0877af39579b Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Fri, 11 Dec 2015 15:10:53 +0900 Subject: [PATCH] Revert "evas: trigger RENDER_FLUSH callbacks during async render" This reverts commit cbb447c878ef779230ebf4470b615b8276c50fa2. 1. this is wrong because evas_render_pipe_wakeup() is being called IN THE RENDER THREAD. it... SENDS a wakeup back to the mainloop with evas_async_events_put(data, 0, NULL, evas_render_async_wakeup); and you can see that evas_render_async_wakeup() calls evas_render_wakeup() and in evas_render_wakeup() flush pre/post are called, but since the trhead does the flush we cant realyl call before/after, but it retains order... IF there are updates (haveup). so calling these callbacks FROM a thread is now leading to apps mysteriously exiting. this is mucho bad. just at random i now have my terminals exiting. --- src/lib/evas/canvas/evas_render.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 249da38c3b..1645ebcf4c 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -3071,10 +3071,8 @@ evas_render_pipe_wakeup(void *data) } eina_evlog("+render_output_flush", e->evas, 0.0, NULL); eina_spinlock_release(&(e->render.lock)); - _cb_always_call(e->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE, NULL); e->engine.func->output_flush(e->engine.data.output, EVAS_RENDER_MODE_ASYNC_END); - _cb_always_call(e->evas, EVAS_CALLBACK_RENDER_FLUSH_POST, NULL); eina_evlog("-render_output_flush", e->evas, 0.0, NULL); evas_async_events_put(data, 0, NULL, evas_render_async_wakeup); }