00000: Wake reserved thread pool workers, PATCH - #649
Closed
howso-mario wants to merge 1 commit into
Closed
howso-mario wants to merge 1 commit into
howso-mario wants to merge 1 commit into
Conversation
Contributor
|
Too much test overhead |
Contributor
Author
|
ADDRESSED: @howsohazard — removed the standalone thread-pool test executable, CTest registrations, and 153-line test harness that added the reported test overhead. The PR diff is now only the two-line reserved-worker wakeup fix. Canonical amd64-release-linux configure/build/test passed 28/28 tests. Commit 5346e30. |
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.
Summary
waitForActivatewhenChangeCurrentThreadStateFromActiveToWaiting()requests one reserved worker to reactivate144d6714c8bf8d9a4736b386b3df2696c92be404Root cause
Reserved workers wait on
waitForActivatewith the predicatenumThreadsToTransitionToReserved < 0. The active-to-waiting transition decremented that counter when a reserved worker was available, but notified onlywaitForTask. The predicate became true without waking the condition variable that owns it.The mismatch existed at both PR #648's base
a2d4ea98e88224827a753024ba414a1c836380feand exact headda4c8500d3693ac7a7d9c9941d69a006a386aca3. After #648 merged, it remained present at merge SHA144d6714c8bf8d9a4736b386b3df2696c92be404.Verification
reserve_reactivationandresizefailed 5/5 withreserved worker was not reactivated;shutdownpassed 5/5amd64-release-linux: 475/475 build steps and 31/31 CTests passedgit diff --check: passedThe Docker-backed worker could not access the host Docker daemon, so the exact CI container images were not run locally; GitHub CI is the authoritative cross-platform/container gate.