mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-31 22:25:38 -04:00
loop: don't call the hooks around blocking wait
The blocking invoke function is not meant to be called with any of the loop context locks acquired so that it can actually run the invoke call while blocking. Make this (and other blocking risks) clear in the documentation. Because it is not supposed to be called with any of the locks, we should also not try to call the hooks (that implement the unlock/lock). Fixes #4472
This commit is contained in:
parent
1139ab5966
commit
46dfa69f26
2 changed files with 5 additions and 6 deletions
|
|
@ -472,14 +472,10 @@ again:
|
|||
if (block && queue->ack_fd != -1) {
|
||||
uint64_t count = 1;
|
||||
|
||||
spa_loop_control_hook_before(&impl->hooks_list);
|
||||
|
||||
if ((res = spa_system_eventfd_read(impl->system, queue->ack_fd, &count)) < 0)
|
||||
spa_log_warn(impl->log, "%p: failed to read event fd:%d: %s",
|
||||
queue, queue->ack_fd, spa_strerror(res));
|
||||
|
||||
spa_loop_control_hook_after(&impl->hooks_list);
|
||||
|
||||
res = item->res;
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue