@ -88,7 +88,7 @@ public protocol JobQueue: DurableOperationDelegate {
public extension JobQueue {
public extension JobQueue {
// MARK: D e p e n en c i e s
// MARK: D e p e n d en c i e s
var dbConnection : YapDatabaseConnection {
var dbConnection : YapDatabaseConnection {
return SSKEnvironment . shared . primaryStorage . dbReadWriteConnection
return SSKEnvironment . shared . primaryStorage . dbReadWriteConnection
@ -109,7 +109,11 @@ public extension JobQueue {
jobRecord . save ( with : transaction )
jobRecord . save ( with : transaction )
transaction . addCompletionQueue ( . global ( ) ) {
transaction . addCompletionQueue ( . global ( ) ) {
self . workStep ( )
AppReadiness . runNowOrWhenAppDidBecomeReady {
DispatchQueue . global ( ) . async {
self . workStep ( )
}
}
}
}
}
}
@ -283,7 +287,7 @@ public class JobRecordFinder: NSObject, Finder {
func allRecords ( label : String , status : SSKJobRecordStatus , transaction : YapDatabaseReadTransaction ) -> [ SSKJobRecord ] {
func allRecords ( label : String , status : SSKJobRecordStatus , transaction : YapDatabaseReadTransaction ) -> [ SSKJobRecord ] {
var result : [ SSKJobRecord ] = [ ]
var result : [ SSKJobRecord ] = [ ]
self . enumerateJobRecords ( label : label , status : status , transaction : transaction ) { jobRecord , stopPointer in
self . enumerateJobRecords ( label : label , status : status , transaction : transaction ) { jobRecord , _ in
result . append ( jobRecord )
result . append ( jobRecord )
}
}
return result
return result
@ -293,7 +297,7 @@ public class JobRecordFinder: NSObject, Finder {
let queryFormat = String ( format : " WHERE %@ = ? AND %@ = ? ORDER BY %@ " , JobRecordField . status . rawValue , JobRecordField . label . rawValue , JobRecordField . sortId . rawValue )
let queryFormat = String ( format : " WHERE %@ = ? AND %@ = ? ORDER BY %@ " , JobRecordField . status . rawValue , JobRecordField . label . rawValue , JobRecordField . sortId . rawValue )
let query = YapDatabaseQuery ( string : queryFormat , parameters : [ status . rawValue , label ] )
let query = YapDatabaseQuery ( string : queryFormat , parameters : [ status . rawValue , label ] )
self . ext ( transaction : transaction ) . enumerateKeysAndObjects ( matching : query ) { collection , key , object , stopPointer in
self . ext ( transaction : transaction ) . enumerateKeysAndObjects ( matching : query ) { _ , _ , object , stopPointer in
guard let jobRecord = object as ? SSKJobRecord else {
guard let jobRecord = object as ? SSKJobRecord else {
owsFailDebug ( " expecting jobRecord but found: \( object ) " )
owsFailDebug ( " expecting jobRecord but found: \( object ) " )
return
return