Are there interlocked(atomic) operations in iOS SDK?
I need interlocked increment\\decrement and interlocked comparsion.
*UPDATE: * My main proble
Update: Language level atomics under C11 and C++11 are now available.
You can simply declare _Atomic(int) a;
.
A more detailed introduction.
atomic operations and their documentation can be found in libkern/OSAtomic.h
. an overview can be found under man atomic
.
as well, you will likely find C11 and C++11 language/library support very soon.
Objective-C has the keyword synchronized for atomic operations.
@synchronized(object) {
// ...
}
If you specify the attribute atomic in a property declaration, the setters and getters will be sythesized using these synchronized-blocks.
Also look at NSLock
and NSLocking
protocol.
You can use the OSAtomicIncrement*
/OSAtomicDecrement*
operations described in Using Atomic Operations.
You can take a look at the properties (ObjectiveC 2.0 feature).
@property int atomicProperty;
There is in fact no 'atomic' specifier, as properties default to atomic. They can be set to 'nonatomic'.
http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProperties.html
You may be interested by @synchronized
also. Or this part of the doc:
http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Multithreading/ThreadSafety/ThreadSafety.html