--- a/nested-client.c +++ b/nested-client.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -268,6 +269,16 @@ wl_surface_set_input_region(top.wl, region); wl_surface_commit(top.wl); wl_region_destroy(region); + /* CONTRACT: log an actual client flush separately from the + * later server handler; a successful write is not application. */ + int flushed = wl_display_flush(display); + struct timespec sent_at; + clock_gettime(CLOCK_MONOTONIC, &sent_at); + fprintf(stderr, "CLIENT_FLUSH ns=%lld region=%s rc=%d wl=%u\n", + (long long)sent_at.tv_sec * 1000000000LL + sent_at.tv_nsec, + empty ? "empty" : "full", flushed, + wl_proxy_get_id((struct wl_proxy *)top.wl)); + if (flushed < 0 && errno != EAGAIN) running = false; fprintf(stderr,"COMMAND region_%s_top DONE wl=%u\n", empty ? "empty" : "full", wl_proxy_get_id((struct wl_proxy *)top.wl));