Skip to content

Conversation

TheCharlatan
Copy link
Collaborator

I find logic around forking child processes always a bit confusing, hopefully these comments can make it a bit easier for a future reader.

@ryanofsky
Copy link
Collaborator

Code review ACK b56bf21

Separately, it looks like there is also a potential leak in that function because both socketpair descriptors will be leaked if fork() fails. But probably this is not a serious issue because if fork() fails, something is already very wrong and the process might be to exit anyway.

@ryanofsky ryanofsky merged commit 8bb6eab into bitcoin-core:master Aug 21, 2024
ryanofsky added a commit to ryanofsky/bitcoin that referenced this pull request Sep 9, 2024
…nd cmake headers target

This update brings in the following changes:

bitcoin-core/libmultiprocess#105 types: Add Custom{Build,Read,Pass}Message hooks
bitcoin-core/libmultiprocess#106 Bugfix: Clean up ThreadContext pointers when Connection is destroyed
bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
ryanofsky added a commit to ryanofsky/bitcoin that referenced this pull request Sep 10, 2024
…nd cmake headers target

This update brings in the following changes:

bitcoin-core/libmultiprocess#105 types: Add Custom{Build,Read,Pass}Message hooks
bitcoin-core/libmultiprocess#106 Bugfix: Clean up ThreadContext pointers when Connection is destroyed
bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
ryanofsky added a commit to ryanofsky/bitcoin that referenced this pull request Sep 10, 2024
This update brings in the following changes:

bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
Sjors pushed a commit to Sjors/bitcoin that referenced this pull request Sep 10, 2024
This update brings in the following changes:

bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
Sjors pushed a commit to Sjors/bitcoin that referenced this pull request Sep 11, 2024
This update brings in the following changes:

bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
Sjors pushed a commit to Sjors/bitcoin that referenced this pull request Sep 11, 2024
This update brings in the following changes:

bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
ryanofsky added a commit to ryanofsky/bitcoin that referenced this pull request Sep 17, 2024
This update brings in the following changes:

bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
ryanofsky added a commit to ryanofsky/bitcoin that referenced this pull request Sep 17, 2024
This update brings in the following changes:

bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
ryanofsky added a commit to ryanofsky/bitcoin that referenced this pull request Sep 19, 2024
This update brings in the following changes:

bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
ryanofsky added a commit to ryanofsky/bitcoin that referenced this pull request Sep 19, 2024
This update brings in the following changes:

bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
Sjors pushed a commit to Sjors/bitcoin that referenced this pull request Sep 19, 2024
This update brings in the following changes:

bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
Sjors pushed a commit to Sjors/bitcoin that referenced this pull request Sep 19, 2024
This update brings in the following changes:

bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
Sjors pushed a commit to Sjors/bitcoin that referenced this pull request Sep 20, 2024
This update brings in the following changes:

bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
ryanofsky added a commit to ryanofsky/bitcoin that referenced this pull request Sep 24, 2024
This update brings in the following changes:

bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
ryanofsky added a commit to ryanofsky/bitcoin that referenced this pull request Sep 24, 2024
This update brings in the following changes:

bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
m3dwards pushed a commit to m3dwards/bitcoin that referenced this pull request Oct 3, 2024
This update brings in the following changes:

bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
janus pushed a commit to BitgesellOfficial/bitgesell that referenced this pull request Jan 19, 2025
This update brings in the following changes:

bitcoin-core/libmultiprocess#107 example: Remove manual client adding
bitcoin-core/libmultiprocess#108 doc: Add comments for socket descriptor handling when forking
bitcoin-core/libmultiprocess#109 example: Add missing thread.join() call so example can exit cleanly
bitcoin-core/libmultiprocess#110 cmake: add target_capnp_sources headers target
@bitcoin-core bitcoin-core locked and limited conversation to collaborators Aug 21, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants