Route bridge activity requests through the worker owner
This commit is contained in:
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. */
|
||||
|
||||
|
||||
Reference in new issue
Block a user