aboutsummaryrefslogtreecommitdiffstats
path: root/idatui/__init__.py
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-07-09 11:55:43 +0200
committerblasty <blasty@local>2026-07-09 11:55:43 +0200
commit21d2cbbfcdbb712b907573b784bc9d98d5c5e648 (patch)
tree8d2c94975c30e13501f0c8c8785230cae235ae98 /idatui/__init__.py
parentdomain/paging layer: FunctionIndex, block-cached DisasmModel, decompile, resolve (diff)
downloadida-tui-21d2cbbfcdbb712b907573b784bc9d98d5c5e648.tar.gz
ida-tui-21d2cbbfcdbb712b907573b784bc9d98d5c5e648.tar.xz
ida-tui-21d2cbbfcdbb712b907573b784bc9d98d5c5e648.zip
keep idle workers alive: bump_idle_ttl + KeepAlive heartbeat
Root cause: idalib workers run an idle watchdog (worker_lifecycle.py) that self-exits after idle_ttl_sec (default 600s) of no requests -- deliberate resource hygiene for a shared/ephemeral supervisor, wrong for an interactive TUI. CLI-opened startup binary always gets 600s (no flag). Fix (both verified against a 12s-TTL session): - IDAClient.bump_idle_ttl(1e9): re-open (idempotent) re-applies TTL, no upper cap -> effectively immortal. Primary fix, call once at startup. - IDAClient.keepalive()/KeepAlive: background server_health heartbeat resets the watchdog; covers adopted sessions too. Safety net. tests/test_keepalive.py: 4/4 (heartbeat + bump both keep a short-TTL worker alive past 2x TTL). docs updated with why + fix.
Diffstat (limited to 'idatui/__init__.py')
-rw-r--r--idatui/__init__.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/idatui/__init__.py b/idatui/__init__.py
index 8dd371c..24f3c0f 100644
--- a/idatui/__init__.py
+++ b/idatui/__init__.py
@@ -10,6 +10,7 @@ from .client import (
IDAToolError,
IDASessionError,
Session,
+ KeepAlive,
)
from .domain import (
Program,
@@ -42,4 +43,5 @@ __all__ = [
"IDAToolError",
"IDASessionError",
"Session",
+ "KeepAlive",
]