31.03.2018 22:00, Keith Packard пишет:
+ if (oc->output && oc->output->count > 0)
+ (void) FlushClient(client, oc, (char *) NULL, 0);
+
FlushClient doesn't empty the buffer when the kernel buffers are full,
so while calling it here may reduce the occurrence of the problem, it
won't eliminate it.
One way to fix this would be to have the X server OS layer *also* buffer
fds and ensure that they are presented to Xtrans just before the reply
which uses them. Alternatively, we could fix xcb so that it kept the fds
around for 'a while' instead of discarding them immediately. The latter
approach seems a lot easier to me?
Yes, it would be easier to fix this in libxcb, but I believe that it
would be more
correct to do this in the X server. At least I want to try to fix the X
server.
_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel