Fixes a code comment in Concurrent::{Hash,Array} #793
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.
This patch is actually a question.
The reason
Hashcan be chosen in MRI as implementation forConcurrent::Hashcannot be that the interpreter does not run threads in parallel, because if you issue adeletecall, say, and there is a context switch, even if only one thread runs at a time, the internal state of the hash could be left inconsistent.What we need for
Hashto work, really, is that their functions are atomic in practice.Not realeasing the GIL while C runs is something that I've heard, but I don't really know if my proposal is correct. Someone knowledgeable should validate it.
I could do the same in
Concurrent::Arrayand others if there are more.