mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-12-21 10:50:03 +01:00
Revert "loop: don't call the hooks around blocking wait"
This reverts commit 09fafdfc01.
This commit is contained in:
parent
09fafdfc01
commit
8c202a8307
2 changed files with 6 additions and 5 deletions
|
|
@ -109,11 +109,8 @@ struct spa_loop_methods {
|
||||||
* an object that has identity.
|
* an object that has identity.
|
||||||
* \param size The size of data to copy.
|
* \param size The size of data to copy.
|
||||||
* \param block If \true, do not return until func has been called. Otherwise,
|
* \param block If \true, do not return until func has been called. Otherwise,
|
||||||
* returns immediately. Passing \true can cause a deadlock when
|
* returns immediately. Passing \true does not risk a deadlock because
|
||||||
* the calling thread is holding the loop context lock. A blocking
|
* the data thread is never allowed to wait on any other thread.
|
||||||
* invoke should never be done from a realtime thread. Also beware
|
|
||||||
* of blocking invokes between 2 threads as you can easily end up
|
|
||||||
* in a deadly embrace.
|
|
||||||
* \param user_data An opaque pointer passed to func.
|
* \param user_data An opaque pointer passed to func.
|
||||||
* \return `-EPIPE` if the internal ring buffer filled up,
|
* \return `-EPIPE` if the internal ring buffer filled up,
|
||||||
* if block is \false, 0 if seq was SPA_ID_INVALID or
|
* if block is \false, 0 if seq was SPA_ID_INVALID or
|
||||||
|
|
|
||||||
|
|
@ -365,10 +365,14 @@ retry:
|
||||||
if (block && queue->ack_fd != -1) {
|
if (block && queue->ack_fd != -1) {
|
||||||
uint64_t count = 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)
|
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",
|
spa_log_warn(impl->log, "%p: failed to read event fd:%d: %s",
|
||||||
queue, queue->ack_fd, spa_strerror(res));
|
queue, queue->ack_fd, spa_strerror(res));
|
||||||
|
|
||||||
|
spa_loop_control_hook_after(&impl->hooks_list);
|
||||||
|
|
||||||
res = item->res;
|
res = item->res;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue