Use AtomicPtr instead of AtomicUsize for Weak #263
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.
Fixes #262
This allows Strict Provenance to work properly. It also now matches what
libstd
does:https://github.com/rust-lang/rust/blob/9f7e997c8bc3cacd2ab4eb75e63cb5fa9279c7b0/library/std/src/sys/unix/weak.rs#L85-L141
Also, while reading the
libstd
code, I noticed that they use anAcquire
fence andRelease
store as the returned pointer should have "consume" semantics. I changed our code to do something slightly stronger (Acquire load and Release store) as it's simpler and definitely correct.Signed-off-by: Joe Richey [email protected]