os: Recompute whether any clients are ready after ProcessWorkQueue() (bug 98030)

If a work proc wakes up a sleeping client and it is ready to execute,
we need to re-compute the local 'are_ready' value before deciding
what timeout value to use in WaitForSomething.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98030
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
Keith Packard 2016-10-28 08:04:43 -07:00
parent 2c91f3235a
commit 9ed5b26354

View File

@ -204,8 +204,10 @@ WaitForSomething(Bool are_ready)
crashed connections and the screen saver timeout */
while (1) {
/* deal with any blocked jobs */
if (workQueue)
if (workQueue) {
ProcessWorkQueue();
are_ready = clients_are_ready();
}
if (are_ready)
timeout = 0;