mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05: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
0d7c20760e
commit
25fbcae1b3
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