1
0
mirror of https://github.com/tw93/Mole.git synced 2026-02-04 18:34:46 +00:00

Improve the scanning speed

This commit is contained in:
Tw93
2025-12-04 16:36:17 +08:00
parent a17b1d9db3
commit 5ddd345d76
3 changed files with 47 additions and 40 deletions

View File

@@ -553,19 +553,24 @@ run_with_timeout() {
"$@" &
local cmd_pid=$!
local elapsed=0
while kill -0 "$cmd_pid" 2> /dev/null; do
if [[ $elapsed -ge $duration ]]; then
kill -TERM "$cmd_pid" 2> /dev/null || true
sleep 1
kill -KILL "$cmd_pid" 2> /dev/null || true
wait "$cmd_pid" 2> /dev/null || true
return 124
fi
sleep 1
((elapsed++))
done
wait "$cmd_pid"
# More efficient wait: use wait with timeout in subshell
(
sleep "$duration" &
local timer_pid=$!
wait "$cmd_pid" 2>/dev/null && kill "$timer_pid" 2>/dev/null && exit 0
kill -TERM "$cmd_pid" 2>/dev/null || true
sleep 0.5
kill -KILL "$cmd_pid" 2>/dev/null || true
exit 124
) &
local watcher_pid=$!
wait "$cmd_pid" 2>/dev/null
local exit_code=$?
kill "$watcher_pid" 2>/dev/null || true
wait "$watcher_pid" 2>/dev/null || true
return $exit_code
}
# Menu display helper