shuffle isReady->isSetup, centralize starting workStep

pull/1/head
Michael Kirk 7 years ago
parent c9d6ccc482
commit b8e4bfff86

@ -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

@ -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) {

@ -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 {

@ -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)

@ -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:

Loading…
Cancel
Save