Make Kernel#fork a simple delegator to Process.fork #4361
Closed
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 change makes it much easier to properly decorate the fork method like in
nakayoshi_fork
.For context I was about do a feature request for a proper
before_fork
/after_fork
API (e.g. https://bugs.ruby-lang.org/issues/5446), but ultimately I think that if it was easy and clean enough to decorate thefork
method with a prepended module, such extra API wouldn't be needed.Right now such decorator is a bit involved because the method is available as both
Kernel.fork
andProcess.fork
, so doing it cleanly is quite complicated, and as a matter of fact,nakayoshi_fork
doesn't decorateProcess.fork
:With
Kernel.fork
becoming a delegator, it makes it much easier and reliable.@ko1 would you be open to this change?
Also @tenderlove since you were involved in the
at_fork
discussion, as well as in thenakayoshi_fork
issues.