TaskHost IBuildEngine Callback Support spec#12868
Open
JanProvaznik wants to merge 8 commits intodotnet:mainfrom
Open
TaskHost IBuildEngine Callback Support spec#12868JanProvaznik wants to merge 8 commits intodotnet:mainfrom
JanProvaznik wants to merge 8 commits intodotnet:mainfrom
Conversation
Member
rainersigwald
left a comment
There was a problem hiding this comment.
looks pretty good.
Should we add any ETW events as part of this? What about telemetry?
documentation/specs/multithreading/taskhost-IBuildEngine-callbacks.md
Outdated
Show resolved
Hide resolved
documentation/specs/multithreading/taskhost-IBuildEngine-callbacks.md
Outdated
Show resolved
Hide resolved
documentation/specs/multithreading/taskhost-IBuildEngine-callbacks.md
Outdated
Show resolved
Hide resolved
documentation/specs/multithreading/taskhost-IBuildEngine-callbacks.md
Outdated
Show resolved
Hide resolved
AR-May
added a commit
that referenced
this pull request
Jan 21, 2026
### Context PRs #12914 and #12868 showed that we need to be able to fix and normalize `AbsolutePath`. Corresponding methods for strings live in `FileUtilities.cs` that is a Shared file and cannot reference Framework classes like `AbsolutePath`. ### Changes Made - Moved some related functions to FrameworkFileUtilities class. - Added the needed functions for `AbsolutePath` ### Testing unit tests
johnazule
pushed a commit
to johnazule/msbuild
that referenced
this pull request
Jan 22, 2026
…#13079) ### Context PRs dotnet#12914 and dotnet#12868 showed that we need to be able to fix and normalize `AbsolutePath`. Corresponding methods for strings live in `FileUtilities.cs` that is a Shared file and cannot reference Framework classes like `AbsolutePath`. ### Changes Made - Moved some related functions to FrameworkFileUtilities class. - Added the needed functions for `AbsolutePath` ### Testing unit tests
Member
Author
|
point brought up by @YuliiaKovalova should we decouple the classes of TaskHost and Sidecar? It seems a bit against the spirit of taskhosts and increases risk to existing scenarios to implement this pseudoworkernode functionality in the same class as the Taskhost which is supposed just to build a task and be done. |
JanProvaznik
commented
Feb 2, 2026
documentation/specs/multithreading/taskhost-IBuildEngine-callbacks.md
Outdated
Show resolved
Hide resolved
documentation/specs/multithreading/taskhost-IBuildEngine-callbacks.md
Outdated
Show resolved
Hide resolved
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a design spec describing how to implement full IBuildEngine callback support when tasks execute in TaskHost, unblocking multithreaded (-mt) scenarios where tasks currently fail due to unsupported callbacks.
Changes:
- Introduces a new multithreading spec documenting current TaskHost callback gaps and failure modes.
- Proposes a bidirectional request/response packet protocol to forward callbacks to the parent node (including Yield/Reacquire).
- Describes threading and environment/working-directory state management, plus risks and a testing strategy.
documentation/specs/multithreading/taskhost-IBuildEngine-callbacks.md
Outdated
Show resolved
Hide resolved
documentation/specs/multithreading/taskhost-IBuildEngine-callbacks.md
Outdated
Show resolved
Hide resolved
documentation/specs/multithreading/taskhost-IBuildEngine-callbacks.md
Outdated
Show resolved
Hide resolved
documentation/specs/multithreading/taskhost-IBuildEngine-callbacks.md
Outdated
Show resolved
Hide resolved
documentation/specs/multithreading/taskhost-IBuildEngine-callbacks.md
Outdated
Show resolved
Hide resolved
documentation/specs/multithreading/taskhost-IBuildEngine-callbacks.md
Outdated
Show resolved
Hide resolved
documentation/specs/multithreading/taskhost-IBuildEngine-callbacks.md
Outdated
Show resolved
Hide resolved
documentation/specs/multithreading/taskhost-IBuildEngine-callbacks.md
Outdated
Show resolved
Hide resolved
documentation/specs/multithreading/taskhost-IBuildEngine-callbacks.md
Outdated
Show resolved
Hide resolved
- Merge from main (brings in taskhost-threading.md from Stage 1) - Refactor to reference taskhost-threading.md instead of duplicating threading model, callback flow, cancellation semantics, lifecycle - Mark Q1 (connection loss) as resolved: OnLinkStatusChanged + MSB5027 - Update packet names: TaskHostIsRunningMultipleNodesRequest/Response - Add Stage 2+ design considerations section with per-stage analysis - Add cross-cutting state refactoring table for Stages 3/4 - Update terminology: parent -> owning worker node throughout - Update testing/file changes sections with actual Stage 1 deliverables - Add new key decisions (Shared location, env var pattern, specific packets) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Mark RequestCores/ReleaseCores as implemented in status table - Rename TaskHostResourceRequest/Response to TaskHostCoresRequest/Response - Update phased rollout table with PR dotnet#13306 - Replace Stage 2 design considerations with implementation summary Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
f9a5d7b to
0f6dcce
Compare
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.
#12863
Changes Made
spec only