|
|
@ -195,12 +195,7 @@ NSUInteger const OWSSendMessageOperationMaxRetries = 4;
|
|
|
|
DDLogDebug(@"%@ succeeded.", strongSelf.tag);
|
|
|
|
DDLogDebug(@"%@ succeeded.", strongSelf.tag);
|
|
|
|
aSuccessHandler();
|
|
|
|
aSuccessHandler();
|
|
|
|
|
|
|
|
|
|
|
|
// Ensure we call the success or failure handler exactly once.
|
|
|
|
[strongSelf markAsComplete];
|
|
|
|
@synchronized(strongSelf)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
OWSCAssert(strongSelf.operationState != OWSSendMessageOperationStateFinished);
|
|
|
|
|
|
|
|
[strongSelf markAsComplete];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
_failureHandler = ^(NSError *_Nonnull error) {
|
|
|
|
_failureHandler = ^(NSError *_Nonnull error) {
|
|
|
@ -215,12 +210,7 @@ NSUInteger const OWSSendMessageOperationMaxRetries = 4;
|
|
|
|
DDLogDebug(@"%@ failed with error: %@", strongSelf.tag, error);
|
|
|
|
DDLogDebug(@"%@ failed with error: %@", strongSelf.tag, error);
|
|
|
|
aFailureHandler(error);
|
|
|
|
aFailureHandler(error);
|
|
|
|
|
|
|
|
|
|
|
|
// Ensure we call the success or failure handler exactly once.
|
|
|
|
[strongSelf markAsComplete];
|
|
|
|
@synchronized(strongSelf)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
OWSCAssert(strongSelf.operationState != OWSSendMessageOperationStateFinished);
|
|
|
|
|
|
|
|
[strongSelf markAsComplete];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
return self;
|
|
|
|
return self;
|
|
|
@ -330,7 +320,15 @@ NSUInteger const OWSSendMessageOperationMaxRetries = 4;
|
|
|
|
{
|
|
|
|
{
|
|
|
|
[self willChangeValueForKey:OWSSendMessageOperationKeyIsExecuting];
|
|
|
|
[self willChangeValueForKey:OWSSendMessageOperationKeyIsExecuting];
|
|
|
|
[self willChangeValueForKey:OWSSendMessageOperationKeyIsFinished];
|
|
|
|
[self willChangeValueForKey:OWSSendMessageOperationKeyIsFinished];
|
|
|
|
self.operationState = OWSSendMessageOperationStateFinished;
|
|
|
|
|
|
|
|
|
|
|
|
// Ensure we call the success or failure handler exactly once.
|
|
|
|
|
|
|
|
@synchronized(self)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
OWSAssert(self.operationState != OWSSendMessageOperationStateFinished);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.operationState = OWSSendMessageOperationStateFinished;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[self didChangeValueForKey:OWSSendMessageOperationKeyIsExecuting];
|
|
|
|
[self didChangeValueForKey:OWSSendMessageOperationKeyIsExecuting];
|
|
|
|
[self didChangeValueForKey:OWSSendMessageOperationKeyIsFinished];
|
|
|
|
[self didChangeValueForKey:OWSSendMessageOperationKeyIsFinished];
|
|
|
|
|
|
|
|
|
|
|
|