From b8e4bfff86591da7cbb8862a9e846a2567bba9c8 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Mon, 22 Oct 2018 09:49:45 -0600 Subject: [PATCH] shuffle isReady->isSetup, centralize starting workStep --- Signal/src/Jobs/SessionResetJob.swift | 10 +--------- .../src/Network/MessageSenderJobQueue.swift | 11 +---------- SignalServiceKit/src/Util/JobQueue.swift | 15 +++++++++------ .../tests/Network/MessageSendJobQueueTest.swift | 4 ++-- SignalServiceKit/tests/Util/JobQueueTest.swift | 13 +++---------- 5 files changed, 16 insertions(+), 37 deletions(-) diff --git a/Signal/src/Jobs/SessionResetJob.swift b/Signal/src/Jobs/SessionResetJob.swift index 9db7dfbf1..7dbdff30b 100644 --- a/Signal/src/Jobs/SessionResetJob.swift +++ b/Signal/src/Jobs/SessionResetJob.swift @@ -26,15 +26,7 @@ public class SessionResetJobQueue: NSObject, JobQueue { defaultSetup() } - public var isReady: Bool = false { - didSet { - if isReady { - DispatchQueue.global().async { - self.workStep() - } - } - } - } + public var isSetup: Bool = false public func didMarkAsReady(oldJobRecord: JobRecordType, transaction: YapDatabaseReadWriteTransaction) { // no special handling diff --git a/SignalServiceKit/src/Network/MessageSenderJobQueue.swift b/SignalServiceKit/src/Network/MessageSenderJobQueue.swift index 9b17aeb1b..f8ef6bb81 100644 --- a/SignalServiceKit/src/Network/MessageSenderJobQueue.swift +++ b/SignalServiceKit/src/Network/MessageSenderJobQueue.swift @@ -76,16 +76,7 @@ public class MessageSenderJobQueue: NSObject, JobQueue { defaultSetup() } - @objc - public var isReady: Bool = false { - didSet { - if isReady { - DispatchQueue.global().async { - self.workStep() - } - } - } - } + public var isSetup: Bool = false public func didMarkAsReady(oldJobRecord: SSKMessageSenderJobRecord, transaction: YapDatabaseReadWriteTransaction) { if let messageId = oldJobRecord.messageId, let message = TSOutgoingMessage.fetch(uniqueId: messageId, transaction: transaction) { diff --git a/SignalServiceKit/src/Util/JobQueue.swift b/SignalServiceKit/src/Util/JobQueue.swift index 607278b58..6037d5630 100644 --- a/SignalServiceKit/src/Util/JobQueue.swift +++ b/SignalServiceKit/src/Util/JobQueue.swift @@ -69,7 +69,7 @@ public protocol JobQueue: DurableOperationDelegate { var jobRecordLabel: String { get } - var isReady: Bool { get set } + var isSetup: Bool { get set } func setup() func didMarkAsReady(oldJobRecord: JobRecordType, transaction: YapDatabaseReadWriteTransaction) @@ -105,12 +105,11 @@ public extension JobQueue { func workStep() { Logger.debug("") - guard isReady else { + guard isSetup else { if !CurrentAppContext().isRunningTests { - owsFailDebug("not ready") + owsFailDebug("not setup") } - Logger.error("not ready") return } @@ -181,13 +180,17 @@ public extension JobQueue { /// `setup` is called from objc, and default implementations from a protocol /// cannot be marked as @objc. func defaultSetup() { - guard !isReady else { + guard !isSetup else { owsFailDebug("already ready already") return } self.restartOldJobs() - self.isReady = true + self.isSetup = true + + DispatchQueue.global().async { + self.workStep() + } } func remainingRetries(durableOperation: DurableOperationType) -> UInt { diff --git a/SignalServiceKit/tests/Network/MessageSendJobQueueTest.swift b/SignalServiceKit/tests/Network/MessageSendJobQueueTest.swift index 93e7ac429..d5ecbc6bc 100644 --- a/SignalServiceKit/tests/Network/MessageSendJobQueueTest.swift +++ b/SignalServiceKit/tests/Network/MessageSendJobQueueTest.swift @@ -127,7 +127,7 @@ class MessageSenderJobQueueTest: SSKBaseTestSwift { error.isRetryable = true self.messageSender.stubbedFailingError = error let expectation = sentExpectation(message: message) { - jobQueue.isReady = false + jobQueue.isSetup = false } jobQueue.setup() @@ -188,7 +188,7 @@ class MessageSenderJobQueueTest: SSKBaseTestSwift { error.isRetryable = false self.messageSender.stubbedFailingError = error let expectation = sentExpectation(message: message) { - jobQueue.isReady = false + jobQueue.isSetup = false } jobQueue.setup() self.wait(for: [expectation], timeout: 0.1) diff --git a/SignalServiceKit/tests/Util/JobQueueTest.swift b/SignalServiceKit/tests/Util/JobQueueTest.swift index 5765b6dbe..72023d6f1 100644 --- a/SignalServiceKit/tests/Util/JobQueueTest.swift +++ b/SignalServiceKit/tests/Util/JobQueueTest.swift @@ -47,13 +47,7 @@ class TestJobQueue: JobQueue { // no special handling } - var isReady: Bool = false { - didSet { - DispatchQueue.global().async { - self.workStep() - } - } - } + var isSetup: Bool = false let operationQueue = OperationQueue() @@ -161,8 +155,7 @@ class JobQueueTest: SSKBaseTestSwift { } // Verify re-queue - - jobQueue.isReady = false + jobQueue.isSetup = false jobQueue.setup() self.readWrite { transaction in @@ -181,7 +174,7 @@ class JobQueueTest: SSKBaseTestSwift { rerunGroup.leave() } - jobQueue.isReady = true + jobQueue.isSetup = true switch rerunGroup.wait(timeout: .now() + 1.0) { case .timedOut: