[swift-users] Atomics and Memory Fences in Swift

Andrew Trick atrick at apple.com
Sun Dec 4 18:53:43 CST 2016


> On Nov 30, 2016, at 5:40 AM, Anders Ha via swift-users <swift-users at swift.org> wrote:
> 
> Hi guys
> 
> I have recently started adopting lock-free atomics with memory fences, but it seems Swift at this moment does not have any native instruments.
> 
> Then I read a thread in the Apple Developer Forum (https://forums.developer.apple.com/thread/49334 <https://forums.developer.apple.com/thread/49334>), which an Apple staff claimed that all imported atomic operations are "not guaranteed to be atomic". But for my tests with all optimizations enabled (-Owholemodule and -O), the OSAtomic primitives and stdatomic fences do not seem going wild.
> 
> Is these `atomic_*` and `OSAtomic*` primitives really unsafe in Swift as claimed? It doesn't seem like the Swift compiler would reorder memory accesses around a C function call that it wouldn't be able to see through.

Did you get an answer to this? I’m not sure what led you to believe the primitives are unsafe in Swift. Importing them doesn’t change their semantics.

-Andy

> P.S. Is any of these primitives available on Linux? It seems the glibc modulemap does not export an `stdatomic` submodule at all.
> 
> Best Regards,
> Anders
> 
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20161204/e866ce14/attachment.html>


More information about the swift-users mailing list