Assert that pthread mutex initialization succeeded#77761
Merged
bors merged 1 commit intorust-lang:masterfrom Oct 20, 2020
Merged
Assert that pthread mutex initialization succeeded#77761bors merged 1 commit intorust-lang:masterfrom
bors merged 1 commit intorust-lang:masterfrom
Conversation
Contributor
|
r? @cramertj (rust_highfive has picked a reviewer for you, use r? to override) |
Contributor
Author
|
r? @cuviper |
Member
|
I think it's a good idea to enforce this, but the assertion will not be very meaningful to a user. Your change from Maybe they should use |
95618a1 to
01c625e
Compare
Contributor
Author
|
Replaced with cvt_nz and unwrap, this should be informative enough coming from Mutex::init, now that we have a track-caller. I intentionally limited this to initialization for now. |
cuviper
reviewed
Oct 19, 2020
01c625e to
21c29b1
Compare
Member
|
LGTM, thanks! @bors r+ rollup |
Collaborator
|
📌 Commit 21c29b1 has been approved by |
Member
If pthread mutex initialization fails, the failure will go unnoticed unless debug assertions are enabled. Any subsequent use of mutex will also silently fail, since return values from lock & unlock operations are similarly checked only through debug assertions. In some implementations the mutex initialization requires a memory allocation and so it does fail in practice. Check that initialization succeeds to ensure that mutex guarantees mutual exclusion.
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Oct 20, 2020
Rollup of 10 pull requests Successful merges: - rust-lang#77612 (BTreeMap: test invariants more thoroughly and more readably) - rust-lang#77761 (Assert that pthread mutex initialization succeeded) - rust-lang#77778 ([x.py setup] Allow setting up git hooks from other worktrees) - rust-lang#77838 (const keyword: brief paragraph on 'const fn') - rust-lang#77923 ([net] apply clippy lints) - rust-lang#77931 (Fix false positive for `unused_parens` lint) - rust-lang#77959 (Tweak ui-tests structure) - rust-lang#78105 (change name in .mailmap) - rust-lang#78111 (Trait predicate ambiguities are not always in `Self`) - rust-lang#78121 (Do not ICE on pattern that uses a binding multiple times in generator) Failed merges: r? `@ghost`
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.

If pthread mutex initialization fails, the failure will go unnoticed unless
debug assertions are enabled. Any subsequent use of mutex will also silently
fail, since return values from lock & unlock operations are similarly checked
only through debug assertions.
In some implementations the mutex initialization requires a memory
allocation and so it does fail in practice.
Assert that initialization succeeds to ensure that mutex guarantees
mutual exclusion.
Fixes #34966.