Add notify_termination initializers for Windows and Posix.#11
Open
nat-goodspeed wants to merge 4 commits intoBorisSchaeling:masterfrom
Open
Add notify_termination initializers for Windows and Posix.#11nat-goodspeed wants to merge 4 commits intoBorisSchaeling:masterfrom
nat-goodspeed wants to merge 4 commits intoBorisSchaeling:masterfrom
Conversation
Originally we simply passed in the hProcess obtained by CreateProcess(). Unfortunately that left the completion callback vulnerable to the business logic closing the handle, meaning we could not obtain the child process termination code. Duplicating the handle and passing the duplicate solves that issue. Also, the object_handle must survive until its async_wait() call has called its completion handler. Otherwise the handler is called too soon (immediately!) while the child process is still running.
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.
This pull request depends on #10. That changeset displays as part of this comparison.
This PR provides a high-level feature -- asynchronous child-process termination notification -- using two distinct platform-specific initializers with the same name and signature, permitting portable consumer code.