[swift-users] Any equivalent to Java's AtomicInteger?

Hooman Mehr hooman at mac.com
Tue Nov 22 19:20:06 CST 2016


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 <rmann at latencyzero.com> wrote:
> 
>> 
>> On Nov 22, 2016, at 10:30 , Hooman Mehr <hooman at mac.com <mailto:hooman at 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 at 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
>>> rmann at latencyzero.com
>>> 
>>> 
>>> _______________________________________________
>>> swift-users mailing list
>>> swift-users at swift.org
>>> https://lists.swift.org/mailman/listinfo/swift-users
>> 
> 
> 
> -- 
> Rick Mann
> rmann at latencyzero.com <mailto:rmann at latencyzero.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20161122/af4f5003/attachment.html>


More information about the swift-users mailing list