add check for invalid state in _growend!
slow-path
#53513
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 only triggers in cases where the user has done something pretty bad (e.g. modified the size incorrectly, or calling
push!
from multiple threads on the same vector without a lock). I'm very unsure ifConcurrencyViolationError
is the right error to throw here, but I think most of the time, that is going to be the cause. This check is in the slow path because adding extra checks here is basically free (since it will run rarely, and will be batched with O(n) work to copy everything over). I also only included it forgrowend!
and not the other grow functions because almost all users doing bad things in a multithreaded context are likely onlypush!
ing rather than inserting at the front or arbitrary locations.