os: Recompute whether any clients are ready after check_timers()

If a driver calls AttendClient() from within a timer callback we
need to re-compute the local 'are_ready' to prevent the attended
client from waiting until WaitForSomething() times out.

This is a fix similar to commit 9ed5b263.

Signed-off-by: Damien Leone <dleone@nvidia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit f33cb42643)
This commit is contained in:
Damien Leone 2018-06-18 16:24:28 -07:00 committed by Adam Jackson
parent 180ab06d45
commit 8c2f0f8cbd

View File

@ -190,10 +190,11 @@ WaitForSomething(Bool are_ready)
/* deal with any blocked jobs */
if (workQueue) {
ProcessWorkQueue();
are_ready = clients_are_ready();
}
timeout = check_timers();
are_ready = clients_are_ready();
if (are_ready)
timeout = 0;