coreutils icon indicating copy to clipboard operation
coreutils copied to clipboard

feat(timeout): add benchmarking support and optimize signal handling

Open mattsu2020 opened this issue 1 month ago • 6 comments

  • Add dev-dependencies for divan and uucore with benchmark features to Cargo.toml
  • Include a new benchmark harness for timeout_bench
  • Optimize signal lookups using OnceLock for KILL and CONT signals to avoid repeated computations
  • Introduce preserved_child_exit function for accurate exit status handling
  • Update send_signal and wait_or_kill_process for improved efficiency and correctness
  • Update Cargo.lock with new dependency codspeed-divan-compat

This enhances performance testing capabilities and reduces overhead in signal operations for the timeout utility.

mattsu2020 avatar Oct 31 '25 14:10 mattsu2020

GNU testsuite comparison:

Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)

github-actions[bot] avatar Oct 31 '25 14:10 github-actions[bot]

it needs to add https://github.com/uutils/coreutils/blob/main/.github/workflows/benchmarks.yml#L25

sylvestre avatar Oct 31 '25 18:10 sylvestre

GNU testsuite comparison:

Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)
Skipping an intermittent issue tests/tail/overlay-headers (passes in this run but fails in the 'main' branch)

github-actions[bot] avatar Nov 01 '25 06:11 github-actions[bot]

GNU testsuite comparison:

Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)

github-actions[bot] avatar Nov 01 '25 07:11 github-actions[bot]

GNU testsuite comparison:

Skip an intermittent issue tests/timeout/timeout (fails in this run but passes in the 'main' branch)
Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)

github-actions[bot] avatar Nov 15 '25 05:11 github-actions[bot]

GNU testsuite comparison:

Skip an intermittent issue tests/tail/overlay-headers (fails in this run but passes in the 'main' branch)

github-actions[bot] avatar Dec 02 '25 11:12 github-actions[bot]

Whats the reason that this PR is combined? Would it be possible to split the benchmarking and the timeout enhancements?

ChrisDryden avatar Dec 20 '25 01:12 ChrisDryden

Whats the reason that this PR is combined? Would it be possible to split the benchmarking and the timeout enhancements?

separate PR https://github.com/uutils/coreutils/pull/9733

mattsu2020 avatar Dec 20 '25 05:12 mattsu2020