mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-01 22:58:50 -04:00
loop: release queue lock before calling invoke function
We don't actually need to hold the lock while calling the invoke function, we only need the lock to protect the list of queues.
This commit is contained in:
parent
c8c7295f56
commit
494600d46a
1 changed files with 4 additions and 1 deletions
|
|
@ -212,9 +212,12 @@ static void flush_all_queues(struct impl *impl)
|
|||
* read index before we call the function because then the item
|
||||
* might get overwritten. */
|
||||
func = spa_steal_ptr(item->func);
|
||||
if (func)
|
||||
if (func) {
|
||||
pthread_mutex_unlock(&impl->queue_lock);
|
||||
item->res = func(&impl->loop, true, item->seq, item->data,
|
||||
item->size, item->user_data);
|
||||
pthread_mutex_lock(&impl->queue_lock);
|
||||
}
|
||||
|
||||
/* if this function did a recursive invoke, it now flushed the
|
||||
* ringbuffer and we can exit */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue