Revert "loop: don't call the hooks around blocking wait"

This reverts commit 09fafdfc01.
This commit is contained in:
Wim Taymans 2025-07-03 19:52:14 +02:00
parent 09fafdfc01
commit 8c202a8307
2 changed files with 6 additions and 5 deletions

View file

@ -109,11 +109,8 @@ struct spa_loop_methods {
* an object that has identity.
* \param size The size of data to copy.
* \param block If \true, do not return until func has been called. Otherwise,
* returns immediately. Passing \true can cause a deadlock when
* the calling thread is holding the loop context lock. A blocking
* 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.
* returns immediately. Passing \true does not risk a deadlock because
* the data thread is never allowed to wait on any other thread.
* \param user_data An opaque pointer passed to func.
* \return `-EPIPE` if the internal ring buffer filled up,
* if block is \false, 0 if seq was SPA_ID_INVALID or

View file

@ -365,10 +365,14 @@ retry:
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 {