Fix potential hang in QR reader

This commit is contained in:
Alex Taber
2020-12-23 16:51:57 -05:00
parent a2b6eb94e4
commit 573b7d35e6

View File

@@ -41,7 +41,7 @@ static void start_read(qr_data *data)
LightLock_Lock(&data->mut); LightLock_Lock(&data->mut);
while(data->writer_waiting || data->writer_active) while(data->writer_waiting || data->writer_active)
{ {
CondVar_Wait(&data->cond, &data->mut); CondVar_WaitTimeout(&data->cond, &data->mut, 1000000);
} }
AtomicIncrement(&data->num_readers_active); AtomicIncrement(&data->num_readers_active);
@@ -64,7 +64,7 @@ static void start_write(qr_data *data)
while(data->num_readers_active) while(data->num_readers_active)
{ {
CondVar_Wait(&data->cond, &data->mut); CondVar_WaitTimeout(&data->cond, &data->mut, 1000000);
} }
data->writer_waiting = false; data->writer_waiting = false;