From 5bbce14020248ca9f2a7963615c2e70085267f8d Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Wed, 18 Apr 2018 15:53:12 -0400 Subject: [PATCH] Rework flush of registration connection(s). --- .../src/Storage/OWSPrimaryStorage.m | 60 +++++++------------ 1 file changed, 23 insertions(+), 37 deletions(-) diff --git a/SignalServiceKit/src/Storage/OWSPrimaryStorage.m b/SignalServiceKit/src/Storage/OWSPrimaryStorage.m index 5e182ec88..b15cbdc9f 100644 --- a/SignalServiceKit/src/Storage/OWSPrimaryStorage.m +++ b/SignalServiceKit/src/Storage/OWSPrimaryStorage.m @@ -153,48 +153,34 @@ void runAsyncRegistrationsForStorage(OWSStorage *storage) pendingRegistrationConnectionSet.count); dispatch_async(dispatch_get_main_queue(), ^{ - if (pendingRegistrationConnectionSet.count > 0) { - for (YapDatabaseConnection *dbConnection in pendingRegistrationConnectionSet) { - [dbConnection - flushTransactionsWithCompletionQueue:dispatch_get_main_queue() - completionBlock:^{ - OWSAssertIsOnMainThread(); - - [pendingRegistrationConnectionSet - removeObject:dbConnection]; - if (pendingRegistrationConnectionSet.count - > 0) { - DDLogVerbose(@"%@ registration " - @"connection flushed.", - self.logTag); - return; - } - - [self - markAsyncRegistrationsAsCompleteWithCompletion: - completion]; - }]; - } - } else { - [self markAsyncRegistrationsAsCompleteWithCompletion:completion]; + for (YapDatabaseConnection *dbConnection in pendingRegistrationConnectionSet) { + [dbConnection + flushTransactionsWithCompletionQueue:dispatch_get_main_queue() + completionBlock:^{ + OWSAssertIsOnMainThread(); + OWSAssert(!self.areAsyncRegistrationsComplete); + + [pendingRegistrationConnectionSet + removeObject:dbConnection]; + if (pendingRegistrationConnectionSet.count > 0) { + DDLogVerbose(@"%@ registration " + @"connection flushed.", + self.logTag); + return; + } + + DDLogVerbose(@"%@ async registrations complete.", + self.logTag); + + self.areAsyncRegistrationsComplete = YES; + + completion(); + }]; } }); }]; } -- (void)markAsyncRegistrationsAsCompleteWithCompletion:(void (^_Nonnull)(void))completion -{ - OWSAssertIsOnMainThread(); - OWSAssert(!self.areAsyncRegistrationsComplete); - OWSAssert(completion); - - DDLogVerbose(@"%@ async registrations complete.", self.logTag); - - self.areAsyncRegistrationsComplete = YES; - - completion(); -} - + (void)protectFiles { DDLogInfo(