diff options
| author | user <user@clank> | 2026-08-07 01:31:57 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-08-07 01:31:57 +0200 |
| commit | 93240e2f0c0d716758c43154dd37802f556ac6d0 (patch) | |
| tree | 564ec41d72e9f4261b582a2b9c5ceb8995162fac /idatui/edit_ctl.py | |
| parent | autoresearch: checks gate names the failing scenario and retries it alone (diff) | |
| download | ida-tui-93240e2f0c0d716758c43154dd37802f556ac6d0.tar.gz ida-tui-93240e2f0c0d716758c43154dd37802f556ac6d0.tar.xz ida-tui-93240e2f0c0d716758c43154dd37802f556ac6d0.zip | |
Stop ida-pro-mcp installing a sys.setprofile hook around every tool call. Its deadline mechanism profiles every python call/return so a pure-python tool loop can be interrupted; our tools are call-heavy, so it taxed the whole backend 3.3x. Worker now sets IDA_MCP_TOOL_TIMEOUT_SEC=0 and arms the deadline itself with one polling watchdog thread + ida_kernwin.set_cancelled() (the half that actually frees the IDA main thread). Also rewrote _idatui_spans to jump between colour tags instead of walking characters (byte-identical over 258k real lines).
Result: {"status":"keep","total_ms":26923.9,"lg_boot_ms":762.2,"lg_decomp_ms":2631.7,"lg_graph_ms":941.8,"lg_hex_ms":1052,"lg_index_ms":67.2,"lg_listing_cold_ms":440.6,"lg_listing_warm_ms":530.5,"lg_nav_ms":10598.3,"lg_palette_ms":4.6,"lg_render_ms":227.8,"lg_search_ms":5265.5,"pure_graph_ms":237.9,"sm_boot_ms":535.3,"sm_decomp_ms":631.8,"sm_graph_ms":702.1,"sm_hex_ms":841.1,"sm_index_ms":0,"sm_listing_cold_ms":268.2,"sm_listing_warm_ms":269.4,"sm_nav_ms":443.6,"sm_palette_ms":0.3,"sm_render_ms":277.8,"sm_search_ms":194.4,"fails":0}
Diffstat (limited to 'idatui/edit_ctl.py')
0 files changed, 0 insertions, 0 deletions
