diff --git a/src/evaluate.c b/src/evaluate.c index b33ce01..156e859 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -172,6 +172,7 @@ bool evaluate_symbol(evaluator_t *ev, uint16_t symbol_idx, int64_t t_sock_arrive tris->triangle_count); } + if (net_bps <= cfg->signal_threshold_bps) { ev->stats.triangles_skipped++; continue; diff --git a/src/ws_client.c b/src/ws_client.c index d5c846b..cf893c0 100644 --- a/src/ws_client.c +++ b/src/ws_client.c @@ -927,8 +927,7 @@ int ws_client_read(ws_client_t *client, uint32_t conn_idx) { conn->t_sock_arrive_ms = (int64_t)now_realtime_ms(); /* Coalesce: track updated symbols, evaluate once per symbol at end */ - #define MAX_DIRTY_BATCH 2048 - uint16_t dirty[MAX_DIRTY_BATCH]; + uint16_t dirty[MAX_SYMBOLS]; uint32_t dirty_count = 0; // Process all complete frames in the read buffer @@ -986,7 +985,7 @@ int ws_client_read(ws_client_t *client, uint32_t conn_idx) { if (conn->frame_finished && conn->frame_payload_len > 0) { int16_t sym_idx = ws_client_process_frame(client, conn_idx); - if (sym_idx >= 0 && dirty_count < MAX_DIRTY_BATCH) { + if (sym_idx >= 0 && dirty_count < MAX_SYMBOLS) { bool seen = false; for (uint32_t d = 0; d < dirty_count; d++) { if (dirty[d] == (uint16_t)sym_idx) { seen = true; break; }