From 72ab151266f1b8e49ab44d9cc0cc9f0718dca157 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Wed, 21 Jan 2026 09:14:24 -0400 Subject: [PATCH] MT#55283 move uring conditions Change-Id: If472d4c352d3e06faf87ab1f857e2fccb1c0d02d --- daemon/helpers.c | 10 ++-------- daemon/main.c | 10 ++-------- lib/uring.c | 6 ++++++ lib/uring.h | 5 +++++ 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/daemon/helpers.c b/daemon/helpers.c index a15b63ae3..bb675e4f2 100644 --- a/daemon/helpers.c +++ b/daemon/helpers.c @@ -198,10 +198,7 @@ static void thread_detach_cleanup(void *dtp) { struct detach_thread *dt = dtp; g_free(dt); bufferpool_destroy(media_bufferpool); -#ifdef HAVE_LIBURING - if (rtpe_config.common.io_uring) - uring_thread_cleanup(); -#endif + uring_thread_cleanup(); thread_join_me(); } @@ -254,10 +251,7 @@ static void *thread_detach_func(struct detach_thread *dt) { } media_bufferpool = bufferpool_new(bufferpool_aligned_alloc, bufferpool_aligned_free); -#ifdef HAVE_LIBURING - if (rtpe_config.common.io_uring) - uring_thread_init(); -#endif + uring_thread_init(); thread_cleanup_push(thread_detach_cleanup, dt); dt->func(dt->data); diff --git a/daemon/main.c b/daemon/main.c index 5a1733d9d..f21bb3ec0 100644 --- a/daemon/main.c +++ b/daemon/main.c @@ -1565,17 +1565,11 @@ static void early_init(void) { #ifdef WITH_TRANSCODING static void clib_init(void) { media_bufferpool = bufferpool_new(bufferpool_aligned_alloc, bufferpool_aligned_free); -#ifdef HAVE_LIBURING - if (rtpe_config.common.io_uring) - uring_thread_init(); -#endif + uring_thread_init(); } static void clib_cleanup(void) { bufferpool_destroy(media_bufferpool); -#ifdef HAVE_LIBURING - if (rtpe_config.common.io_uring) - uring_thread_cleanup(); -#endif + uring_thread_cleanup(); } static void clib_loop(void) { uring_methods.thread_loop(); diff --git a/lib/uring.c b/lib/uring.c index 2866e4eb2..f4a4234aa 100644 --- a/lib/uring.c +++ b/lib/uring.c @@ -129,6 +129,9 @@ static void __uring_free(struct uring_req *r) { } void uring_thread_init(void) { + if (!rtpe_common_config_ptr->io_uring) + return; + struct io_uring_params params = {0}; int ret = io_uring_queue_init_params(rtpe_common_config_ptr->io_uring_buffers, &rtpe_uring, ¶ms); if (ret) @@ -143,6 +146,9 @@ void uring_thread_init(void) { } void uring_thread_cleanup(void) { + if (!rtpe_common_config_ptr->io_uring) + return; + io_uring_queue_exit(&rtpe_uring); } diff --git a/lib/uring.h b/lib/uring.h index 55b979ae2..9ac51b133 100644 --- a/lib/uring.h +++ b/lib/uring.h @@ -57,6 +57,11 @@ bool uring_poller_isblocked(struct poller *p, void *fdp); void uring_poller_error(struct poller *p, void *fdp); bool uring_poller_del_item_callback(struct poller *p, int fd, void (*callback)(void *), void *arg); +#else + +static inline void uring_thread_init(void) { } +static inline void uring_thread_cleanup(void) { } + #endif #endif