Use RLIMIT_STACK's current limit for Pthreads stack size if it is sane #2852
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.
While investigating some strange memory-clobbering looking behavior in #2850, I discovered that macOS uses a different default Pthreads stack size than Linux does. This PR uses the
RLIMIT_STACK
's current limit if it is sane, i.e., if it meets the minimum size and isn't infinity.Note that the libuv developers discovered this and have a patch that I borrowed from: libuv/libuv#669
I'm not Pthreads-savvy enough to know if it is safe to set both actual stack memory & stack size in the same
attr
, in the case of the Pony runtime's checking for NUMA use on Linux. I am being conservative and assuming that they should not be combined. This patch could save a few lines if it were OK to do combine them.