From f0d48670bef0f2e8b9e75bccec179079a9c05a0c Mon Sep 17 00:00:00 2001 From: Ryan Zhao Date: Thu, 6 Jul 2023 11:35:21 +1000 Subject: [PATCH] fix a bunch of crash --- SessionMessagingKit/Configuration.swift | 1 + .../Jobs/Types/GetExpirationJob.swift | 12 +++++++----- SessionUtilitiesKit/JobRunner/JobRunner.swift | 3 ++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/SessionMessagingKit/Configuration.swift b/SessionMessagingKit/Configuration.swift index defafca92..5c9771011 100644 --- a/SessionMessagingKit/Configuration.swift +++ b/SessionMessagingKit/Configuration.swift @@ -61,5 +61,6 @@ public enum SNMessagingKit { // Just to make the external API nice JobRunner.add(executor: ConfigurationSyncJob.self, for: .configurationSync) JobRunner.add(executor: ConfigMessageReceiveJob.self, for: .configMessageReceive) JobRunner.add(executor: ExpirationUpdateJob.self, for: .expirationUpdate) + JobRunner.add(executor: GetExpirationJob.self, for: .getExpiration) } } diff --git a/SessionMessagingKit/Jobs/Types/GetExpirationJob.swift b/SessionMessagingKit/Jobs/Types/GetExpirationJob.swift index c0335d6c8..6459d6a5b 100644 --- a/SessionMessagingKit/Jobs/Types/GetExpirationJob.swift +++ b/SessionMessagingKit/Jobs/Types/GetExpirationJob.swift @@ -29,6 +29,10 @@ public enum GetExpirationJob: JobExecutor { } var expirationInfo: [String: TimeInterval] = details.expirationInfo + guard expirationInfo.count > 0 else { + success(job, false) + return + } let userPublicKey: String = getUserHexEncodedPublicKey() SnodeAPI.getSwarm(for: userPublicKey) @@ -82,11 +86,9 @@ public enum GetExpirationJob: JobExecutor { } if !expirationInfo.isEmpty { - let updatedJob: Job? = Storage.shared.write { db in - try job - .with(nextRunTimestamp: Date().timeIntervalSince1970 + minRunFrequency) - .saved(db) - } + let updatedJob: Job? = try job + .with(nextRunTimestamp: Date().timeIntervalSince1970 + minRunFrequency) + .saved(db) deferred(updatedJob ?? job) } diff --git a/SessionUtilitiesKit/JobRunner/JobRunner.swift b/SessionUtilitiesKit/JobRunner/JobRunner.swift index ac62a022e..4a70aa368 100644 --- a/SessionUtilitiesKit/JobRunner/JobRunner.swift +++ b/SessionUtilitiesKit/JobRunner/JobRunner.swift @@ -72,7 +72,8 @@ public final class JobRunner { executionType: .concurrent, // Allow as many jobs to run at once as supported by the device qos: .default, jobVariants: [ - jobVariants.remove(.expirationUpdate) + jobVariants.remove(.expirationUpdate), + jobVariants.remove(.getExpiration) ].compactMap { $0 } ) let messageSendQueue: JobQueue = JobQueue(