1234567891011121314151617181920212223242526 |
- From: Felix Fietkau <[email protected]>
- Date: Wed, 1 May 2024 18:40:19 +0200
- Subject: [PATCH] ubus: fix uc_ubus_have_uloop for eloop+uloop combination
- When uloop has been integrated with eloop (in hostapd/wpa_supplicant),
- uloop_cancelling will return false, since uloop_run is not being called.
- This leads to ubus.defer() calling uloop_run in a context where it can
- prevent the other event loop from running.
- Fix this by detecting event loop integration via uloop_fd_set_cb being set
- Signed-off-by: Felix Fietkau <[email protected]>
- ---
- --- a/lib/ubus.c
- +++ b/lib/ubus.c
- @@ -665,6 +665,9 @@ uc_ubus_have_uloop(void)
- bool prev = uloop_cancelled;
- bool active;
-
- + if (uloop_fd_set_cb)
- + return true;
- +
- uloop_cancelled = true;
- active = uloop_cancelling();
- uloop_cancelled = prev;
|