Repository navigation
fix(runner): skip inactive parallel spinners - #1373
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Background
Closes #1368.
Captured parallel runs keep their output pipes open for roughly one extra second because an inactive spinner starts a sleep child. Start the spinner only when stdout is a terminal, progress is enabled, and output is human-readable.
Changes
--no-progress. It detects spinner creation without an elapsed-time threshold.Validation
make sa,make lint, the full sequential suite on macOS Bash 3.2 and Linux Bash 5.3, macOSmake test/parallelandmake test/strict, and the full built-artifact suite pass. Parallel checks use four jobs; macOS runs use the directory argument to avoid the existing Bash 3.2 process-substitution descriptor limit.The full source suite passes on GNU Bash 3.00.0 in sequential, parallel, simple, simple-parallel, and strict modes, using the same shell selection as CI. The built artifact also passes 138 focused provider, reporting, output, and fork tests with Bash 3.0 first in PATH. A PTY check confirms ordinary terminal progress still starts the spinner and suppressed progress does not.
On macOS arm64 and Bash 3.2.57, 100 passing tests with
--parallel --simpleand both output streams captured improved from 1,257 ms to 439 ms, a 65% reduction. Redirecting output to/dev/nullwas effectively unchanged (397 ms to 391 ms). These are medians of five alternating baseline and branch runs after one warm-up, using the same external harness and fixture against main at860c797a48e34be20b019a70f58c0e06d15c8d33. Timings stay out of the test suite.Checklist
CHANGELOG.mdto reflect the new feature or fix.