Route bridge activity requests through the worker owner

This commit is contained in:
evgeny committed 2026-10-27 20:10:00 +01:00
1 parent 4bece684da
commit 61266986e5
2 files changed
+5 -17

No files matched your search

@@ -1366,21 +1366,8 @@ void utun_bridge_on_network_change(void) {
bridge_log(BLEV_DEBUG, "network change notified to auto_socket");
}
static void bridge_set_active_trampoline(void* arg) {
int active = (int)(intptr_t)arg;
struct UTUN_INSTANCE* inst = instance_lite_get_instance();
if (!inst) return;
if (utun_set_client_activity(inst, active) < 0) {
bridge_log(BLEV_ERROR, "client_activity transition failed requested=%s", active ? "ACTIVE" : "STANDBY");
return;
}
bridge_log(BLEV_DEBUG, "client_activity set to %s", active ? "ACTIVE" : "STANDBY");
}
void utun_bridge_set_active(int active) {
struct UASYNC* ua = instance_lite_get_uasync();
if (!ua) return;
uasync_post(ua, bridge_set_active_trampoline, (void*)(intptr_t)active);
int utun_bridge_set_active(int active) {
return instance_lite_set_active(active);
}
static void bridge_notify_network_active_trampoline(void* arg) {
@@ -252,10 +252,11 @@ char* utun_bridge_get_local_sockets_json(void);
void utun_bridge_on_network_change(void);
/* Поставить запрос client_activity в uasync: active!=0 — ACTIVE, 0 — STANDBY.
* Возврат не подтверждает применение; utun_set_client_activity учитывает удержание трансляций,
* 0 — команда поставлена живому worker под защитой его владельца; -1 — отказ с диагностикой.
* При stop ожидающая команда может отмениться. Возврат не подтверждает применение; ядро учитывает удержание трансляций,
* ошибки перехода логирует trampoline в потоке ядра. */
void utun_bridge_set_active(int active);
int utun_bridge_set_active(int active);
/* Поставить уведомление standby в uasync; досрочный wake только в SLEEP после min_sleep. */