[Fixes #197] Gracefully shutdown HTTP server #201
Merged
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.
To prevent a race condition seen in #197:
a. User runs
process-compose down
b. Client makes request to
/project/stop
a.
ProjectRunner.ShutDownProject()
stops all processesb.
cmd.runProject()
stops blockingc. Exits before
PcApi.ShutDownProject
has written the responsea. Gets
EOF
reading the response because the server has gone awayI can't think of a way to reproduce this in a test, except for something
convoluted like creating a custom client that introduces a delay in
reading the response.
It can be "manually" simulated by adding a small delay here though:
And using this config:
Before this change:
After this change: