|
|
|
@ -58,10 +58,14 @@ public final class ClosedGroupPoller : NSObject {
|
|
|
|
|
// MARK: Private API
|
|
|
|
|
private func setUpPolling(for groupPublicKey: String) {
|
|
|
|
|
poll(groupPublicKey).done2 { [weak self] _ in
|
|
|
|
|
self?.pollRecursively(groupPublicKey)
|
|
|
|
|
DispatchQueue.main.async { // Timers don't do well on background queues
|
|
|
|
|
self?.pollRecursively(groupPublicKey)
|
|
|
|
|
}
|
|
|
|
|
}.catch2 { [weak self] error in
|
|
|
|
|
// The error is logged in poll(_:isBackgroundPoll:)
|
|
|
|
|
self?.pollRecursively(groupPublicKey)
|
|
|
|
|
// The error is logged in poll(_:)
|
|
|
|
|
DispatchQueue.main.async { // Timers don't do well on background queues
|
|
|
|
|
self?.pollRecursively(groupPublicKey)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -82,10 +86,14 @@ public final class ClosedGroupPoller : NSObject {
|
|
|
|
|
timers[groupPublicKey] = Timer.scheduledTimer(withTimeInterval: nextPollInterval, repeats: false) { [weak self] timer in
|
|
|
|
|
timer.invalidate()
|
|
|
|
|
self?.poll(groupPublicKey).done2 { _ in
|
|
|
|
|
self?.pollRecursively(groupPublicKey)
|
|
|
|
|
DispatchQueue.main.async { // Timers don't do well on background queues
|
|
|
|
|
self?.pollRecursively(groupPublicKey)
|
|
|
|
|
}
|
|
|
|
|
}.catch2 { error in
|
|
|
|
|
// The error is logged in poll(_:)
|
|
|
|
|
self?.pollRecursively(groupPublicKey)
|
|
|
|
|
DispatchQueue.main.async { // Timers don't do well on background queues
|
|
|
|
|
self?.pollRecursively(groupPublicKey)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|