diff --git a/AFNetworking/AFNetworkActivityIndicatorManager.m b/AFNetworking/AFNetworkActivityIndicatorManager.m index 32dbbe0..3e36ba6 100644 --- a/AFNetworking/AFNetworkActivityIndicatorManager.m +++ b/AFNetworking/AFNetworkActivityIndicatorManager.m @@ -111,7 +111,11 @@ static NSTimeInterval const kAFNetworkActivityIndicatorInvisibilityDelay = 0.25; - (void)decrementActivityCount { [self willChangeValueForKey:@"activityCount"]; - OSAtomicDecrement32((int32_t*)&_activityCount); + bool success; + do { + int32_t orig = _activityCount; + success = OSAtomicCompareAndSwap32(orig, MIN(orig - 1, orig), &_activityCount); + } while(!success); [self didChangeValueForKey:@"activityCount"]; [self updateNetworkActivityIndicatorVisibilityDelayed]; }