From 7a272788f8cc5eeacc5f262b4617349d3d12b1c3 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 24 Apr 2026 14:48:17 +0300 Subject: [PATCH] Request reset at config upload, increase client req handling freq on idle --- src/.main.c.swp | Bin 0 -> 16384 bytes src/main.c | 4 ++-- src/proto/handlers/config.c | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 src/.main.c.swp diff --git a/src/.main.c.swp b/src/.main.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..b30b8a7a366f273fe767e70bc19641d553e2bdae GIT binary patch literal 16384 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 Xbq^vn<=_X;J#zEx@f@0va5w%JE-z>p literal 0 HcmV?d00001 diff --git a/src/main.c b/src/main.c index a3ef6e5..a197af9 100644 --- a/src/main.c +++ b/src/main.c @@ -167,7 +167,7 @@ void my_sleep(int microseconds) { // Compact threshold: if a client has more than this many messages in a single // outgoing buffer that all arrived within COMPACT_WINDOW_US, pack them into // a single CompactedMessage frame to reduce ws_sendframe_bin syscall overhead. -#define COMPACT_THRESHOLD 4 +#define COMPACT_THRESHOLD 10 #define COMPACT_WINDOW_US 100000ULL // 100 ms static void compact_outgoing_buffer(SizedPtr* buf) @@ -570,7 +570,7 @@ int main(int argc, char** argv) } - if (clients_try_timer == 0) + if (clients_try_timer == 0 || emulState != EMUL_STATE_EXEC) { if(getCurrentUsec() - lastTickCountWindowAt > 1000000) diff --git a/src/proto/handlers/config.c b/src/proto/handlers/config.c index ae2267a..3d1121d 100644 --- a/src/proto/handlers/config.c +++ b/src/proto/handlers/config.c @@ -601,6 +601,7 @@ void handleConfigCtrlMessage( return; } + printf("[CTRL/CONFIG] loaded %zu devices\n", st.count); // Apply projections @@ -733,6 +734,7 @@ void handleConfigCtrlMessage( st.seg_names[i][j] = strdup(handl->ctx->deviceMem->memsegNames[j]); } } + *emulContext->resetRequest = 1; uint8_t* out = fb_build_config_device_id_mapping( nonce, st.paths, st.path_lens, st.seg_names, st.seg_counts, dc, &msg_len);