diff --git a/Session.xcodeproj/project.pbxproj b/Session.xcodeproj/project.pbxproj index 967b47ec5..684851464 100644 --- a/Session.xcodeproj/project.pbxproj +++ b/Session.xcodeproj/project.pbxproj @@ -7706,7 +7706,7 @@ CLANG_WARN__ARC_BRIDGE_CAST_NONARC = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 482; + CURRENT_PROJECT_VERSION = 484; ENABLE_BITCODE = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; @@ -7743,7 +7743,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ""; IPHONEOS_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 2.7.3; + MARKETING_VERSION = 2.7.4; ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = ( "-fobjc-arc-exceptions", @@ -7784,7 +7784,7 @@ CLANG_WARN__ARC_BRIDGE_CAST_NONARC = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "iPhone Distribution"; - CURRENT_PROJECT_VERSION = 482; + CURRENT_PROJECT_VERSION = 484; ENABLE_BITCODE = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; @@ -7816,7 +7816,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ""; IPHONEOS_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 2.7.3; + MARKETING_VERSION = 2.7.4; ONLY_ACTIVE_ARCH = NO; OTHER_CFLAGS = ( "-DNS_BLOCK_ASSERTIONS=1", diff --git a/Session/Meta/AppDelegate.swift b/Session/Meta/AppDelegate.swift index 1335012a0..85fe1126b 100644 --- a/Session/Meta/AppDelegate.swift +++ b/Session/Meta/AppDelegate.swift @@ -805,10 +805,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD public func startPollersIfNeeded(shouldStartGroupPollers: Bool = true) { guard Identity.userExists() else { return } - /// There is a fun issue where if you launch without any valid paths then the pollers are guaranteed to fail their first poll due to - /// trying and failing to build paths without having the `SnodeAPI.snodePool` populated, by waiting for the - /// `JobRunner.blockingQueue` to complete we can have more confidence that paths won't fail to build incorrectly - JobRunner.afterBlockingQueue { [weak self] in + /// Start the pollers on a background thread so that any database queries they need to run don't + /// block the main thread + DispatchQueue.global(qos: .background).async { [weak self] in self?.poller.start() guard shouldStartGroupPollers else { return }