| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- //
 
- //  ALAtomicReference.h
 
- //  AppLovinSDK
 
- //
 
- //  Created by Alan Cao on 1/5/24.
 
- //
 
- NS_ASSUME_NONNULL_BEGIN
 
- /**
 
-  * An object reference that may be updated atomically.
 
-  */
 
- @interface ALAtomicReference <ObjectType> : NSObject
 
- /**
 
-  * Returns the current value.
 
-  */
 
- - (nullable ObjectType)get;
 
- /**
 
-  * Unconditionally sets to the given value.
 
-  */
 
- - (void)set:(nullable ObjectType)newValue;
 
- /**
 
-  * Atomically sets to the given value and returns the previous value.
 
-  */
 
- - (nullable ObjectType)getAndSet:(nullable ObjectType)newValue;
 
- /**
 
-  * Atomically sets the value to the given updated value if the current value == the expected value.
 
-  *
 
-  * @param expect The expected value.
 
-  * @param update The new value.
 
-  *
 
-  * @return @c YES if successful. @c NO return indicates that the actual value was not equal to the expected value.
 
-  */
 
- - (BOOL)compareAndSet:(nullable ObjectType)expect update:(nullable ObjectType)update;
 
- /**
 
-  * Creates an instance with the given initial value.
 
-  */
 
- - (instancetype)initWithValue:(nullable ObjectType)initialValue;
 
- @end
 
- NS_ASSUME_NONNULL_END
 
 
  |