os: fix input_mutex_count off-by-one in input_force_unlock
input_force_unlock was mis-using input_mutex_lock and leaving it set to -1. As this is executed from OsInit at each server generation, on the second time through, the mutex would be left locked (!) due to the trylock call. This caused input to fail after the first server reset. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
de36200659
commit
06bdc3bc1a
|
@ -109,9 +109,10 @@ void
|
|||
input_force_unlock(void)
|
||||
{
|
||||
if (pthread_mutex_trylock(&input_mutex) == 0) {
|
||||
input_mutex_count++;
|
||||
/* unlock +1 times for the trylock */
|
||||
while (input_mutex_count-- >= 0)
|
||||
pthread_mutex_unlock(&input_mutex);
|
||||
while (input_mutex_count > 0)
|
||||
input_unlock();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user