mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
A `compare_exchange_weak` can spuriously return false, regardless of whether a concurrent access happened. This was causing a null-pointer dereference in TaskGroupImpl::poll in a narrow circumstance. The dereference failure only appears when using the `arm64` slice of the runtime library, since Clang will use `ldxr/stxr` for synchronization on such targets. The weak form does not retry on a spurious failure, but the strong version will. resolves rdar://84192672
32 KiB
32 KiB