This repository was archived by the owner on Sep 25, 2019. It is now read-only.
mcmd: close FDs when finished so we don't run out #31
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.
Close file descriptors (FDs) for the pipes between the MultipleCmd
parent and its children to prevent the parent from exceeding the default
per-process Linux limit of 1024 FDs.
The pipes created for communication between the parent process and each
subprocess are unidirectional. Close the unused ends of the pipes in the
parent and child as soon as a child is spawned.
In the parent, keep track of the other FDs for each subprocesses, and
close the FDs for a subproccess when it's reaped.
MultipleCmd now requires only (3 * maxflight) open FDs instead of
(6 * total number of commands). Given a per-process FD limit of 1024,
the theoretical limit for maxflight is 341, versus the previous limit of
170.