As you noted, this is extremely inefficient and compiler can’t do anything about it. GCD is meant to be used as a high-level concurrency design tool. If you really need atomic integer, your best bet is writing it in C or Objective-C and calling it in Swift.
> On Nov 22, 2016, at 4:48 PM, Rick Mann <rm...@latencyzero.com> wrote: > >> >> On Nov 22, 2016, at 10:30 , Hooman Mehr <hoo...@mac.com >> <mailto:hoo...@mac.com>> wrote: >> >> Standard library source code already includes internal atomic counters. >> Introducing these apparently is on the agenda but post Swift 4.0 as part of >> a general language level support for concurrency. For now, the preferred API >> for such things is GCD (Grand Central Dispatch) provided through Dispatch >> module on macOS and Linux. > > That's what I'm currently doing: > > https://pastebin.com/2wKNvu2K <https://pastebin.com/2wKNvu2K> > > And for my case, performance is not a concern, but this seems like it's very > expensive. Perhaps the compiler magically optimizes this down to an atomic > instruction, but I doubt it. > > BTW, is there any easy way to see the generated assembly? Seems to be a > missing feature in Xcode. > >> >>> On Nov 21, 2016, at 7:55 PM, Rick Mann via swift-users >>> <swift-users@swift.org> wrote: >>> >>> A lot of architectures provide CPU support for atomic increment and the >>> like. <stdatomic.h> does, too, but most of it is unavailable in Xcode 8.1. >>> >>> Is there a Swift AtomicInteger? Is that worth adding to the language? >>> >>> -- >>> Rick Mann >>> rm...@latencyzero.com >>> >>> >>> _______________________________________________ >>> swift-users mailing list >>> swift-users@swift.org >>> https://lists.swift.org/mailman/listinfo/swift-users >> > > > -- > Rick Mann > rm...@latencyzero.com <mailto:rm...@latencyzero.com>
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users