diff --git a/SessionMessagingKit/Sending & Receiving/Pollers/ClosedGroupPoller.swift b/SessionMessagingKit/Sending & Receiving/Pollers/ClosedGroupPoller.swift index 0b9ee4a0f..89283dd03 100644 --- a/SessionMessagingKit/Sending & Receiving/Pollers/ClosedGroupPoller.swift +++ b/SessionMessagingKit/Sending & Receiving/Pollers/ClosedGroupPoller.swift @@ -79,6 +79,7 @@ public final class ClosedGroupPoller : NSObject { promise.catch2 { error in SNLog("Polling failed for closed group with public key: \(publicKey) due to error: \(error).") } + promise.retainUntilComplete() return promise.map { _ in } } } diff --git a/SessionMessagingKit/Sending & Receiving/Pollers/OpenGroupPoller.swift b/SessionMessagingKit/Sending & Receiving/Pollers/OpenGroupPoller.swift index b5e675da7..593140e47 100644 --- a/SessionMessagingKit/Sending & Receiving/Pollers/OpenGroupPoller.swift +++ b/SessionMessagingKit/Sending & Receiving/Pollers/OpenGroupPoller.swift @@ -69,7 +69,6 @@ public final class OpenGroupPoller : NSObject { guard !self.isPolling else { return Promise.value(()) } self.isPolling = true let openGroup = self.openGroup - let userPublicKey = getUserHexEncodedPublicKey() let (promise, seal) = Promise.pending() promise.retainUntilComplete() OpenGroupAPI.getMessages(for: openGroup.channel, on: openGroup.server).done(on: DispatchQueue.global(qos: .default)) { messages in @@ -177,13 +176,13 @@ public final class OpenGroupPoller : NSObject { } }.catch(on: DispatchQueue.global(qos: .userInitiated)) { _ in seal.fulfill(()) // The promise is just used to keep track of when we're done - } + }.retainUntilComplete() return promise } private func pollForDeletedMessages() { let openGroup = self.openGroup - let _ = OpenGroupAPI.getDeletedMessageServerIDs(for: openGroup.channel, on: openGroup.server).done(on: DispatchQueue.global(qos: .default)) { deletedMessageServerIDs in + OpenGroupAPI.getDeletedMessageServerIDs(for: openGroup.channel, on: openGroup.server).done(on: DispatchQueue.global(qos: .default)) { deletedMessageServerIDs in let deletedMessageIDs = deletedMessageServerIDs.compactMap { Storage.shared.getIDForMessage(withServerID: UInt64($0)) } SNMessagingKitConfiguration.shared.storage.write { transaction in deletedMessageIDs.forEach { messageID in @@ -191,10 +190,10 @@ public final class OpenGroupPoller : NSObject { TSMessage.fetch(uniqueId: messageID, transaction: transaction)?.remove(with: transaction) } } - } + }.retainUntilComplete() } private func pollForModerators() { - let _ = OpenGroupAPI.getModerators(for: openGroup.channel, on: openGroup.server) + OpenGroupAPI.getModerators(for: openGroup.channel, on: openGroup.server).retainUntilComplete() } }