My initial design for parallel tests was a busy loop (busy waiting) that polls the running processes every half a second.
Using pythons own ThreadPoolExecutor
makes the code smaller and hopefully easier to read/understand. By removing the half-a-second overhead, I believe the tests run now slightly faster (Verified on my workstation, but should also be verified by one of the reviewers, ideally)
This is refactoring beside the following changes:
- Dropped the dot-printing (….) while waiting for the next result
--failfast
will now wait for unfinished jobs (similar to a failure inmake
)- The
portseed_offset
is no longer applied. This is no longer required since we already kill leftover processes (see #12904). This “fixes” #10869 because we deterministically pick ports starting at 11000