-
Thomas Guillem authored
This commit fixes the following deadlock: The input thread (from input_DecoderWait()) reads p_owner->b_idle, and wait on the wait_acknowledge condition variable because p_owner->b_idle is false (and because p_owner->b_has_data is false too). The decoder thread sets p_owner->b_idle to true because the fifo is empty and wait on the fifo condition variable. Both threads are waiting each others, hence the deadlock. To fix this issue, signal the input thread from the decoder thread after setting p_owner->b_idle to true. Since predictable scheduling behavior is not required, p_owner->lock doesn't have to be held while signaling p_owner->wait_acknowledge. Fixes #16100
8cacc98a