From 4fd34005dc22a021c1befc53c0ec17160dfb2caa Mon Sep 17 00:00:00 2001 From: Ryan ZHAO Date: Thu, 1 Apr 2021 13:23:21 +1100 Subject: [PATCH] fix opening transactions in filter. --- SessionSnodeKit/SnodeAPI.swift | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/SessionSnodeKit/SnodeAPI.swift b/SessionSnodeKit/SnodeAPI.swift index 2e76d8c05..a57da7e52 100644 --- a/SessionSnodeKit/SnodeAPI.swift +++ b/SessionSnodeKit/SnodeAPI.swift @@ -376,18 +376,19 @@ public final class SnodeAPI : NSObject { private static func removeDuplicates(from rawMessages: [JSON], associatedWith publicKey: String) -> [JSON] { var receivedMessages = SNSnodeKitConfiguration.shared.storage.getReceivedMessages(for: publicKey) - return rawMessages.filter { rawMessage in + let result = rawMessages.filter { rawMessage in guard let hash = rawMessage["hash"] as? String else { SNLog("Missing hash value for message: \(rawMessage).") return false } let isDuplicate = receivedMessages.contains(hash) receivedMessages.insert(hash) - SNSnodeKitConfiguration.shared.storage.writeSync { transaction in - SNSnodeKitConfiguration.shared.storage.setReceivedMessages(to: receivedMessages, for: publicKey, using: transaction) - } return !isDuplicate } + SNSnodeKitConfiguration.shared.storage.writeSync { transaction in + SNSnodeKitConfiguration.shared.storage.setReceivedMessages(to: receivedMessages, for: publicKey, using: transaction) + } + return result } // MARK: Error Handling