Avoid C atomic operations in Swift 5.9+ #90
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.
Importing
_AtomicsShims
with C++ interoperability enabled uncovers some issues with double-wide atomics as currently implemented in C.It's time to stop tweaking these C definitions -- instead, disable C atomics, and switch to using native Swift atomic operations from Swift 5.9 onward.
(For now, we'll still need
_AtomicsShims
for itsswift_retain_n
/swift_release_n
wrappers. I'm planning to get rid of the need for those, too, but that'll need some compiler tweaks that aren't targeted for 5.9.)Resolves #88.
Checklist