From 17b15f2cd9566df6f2017875665e3d1c24de3f2b Mon Sep 17 00:00:00 2001 From: ryanzhao Date: Tue, 14 Sep 2021 13:33:27 +1000 Subject: [PATCH] fix threading issue --- Session/Home/HomeVC.swift | 2 +- Session/Utilities/IP2Country.swift | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Session/Home/HomeVC.swift b/Session/Home/HomeVC.swift index de966618f..7c5abfffd 100644 --- a/Session/Home/HomeVC.swift +++ b/Session/Home/HomeVC.swift @@ -152,7 +152,7 @@ final class HomeVC : BaseVC, UITableViewDataSource, UITableViewDelegate, NewConv // Re-populate snode pool if needed SnodeAPI.getSnodePool().retainUntilComplete() // Onion request path countries cache - DispatchQueue.global(qos: .utility).async { + DispatchQueue.global(qos: .utility).sync { let _ = IP2Country.shared.populateCacheIfNeeded() } // Get default open group rooms if needed diff --git a/Session/Utilities/IP2Country.swift b/Session/Utilities/IP2Country.swift index c7ca65a23..3f34f7040 100644 --- a/Session/Utilities/IP2Country.swift +++ b/Session/Utilities/IP2Country.swift @@ -46,7 +46,8 @@ final class IP2Country { } @objc func populateCacheIfNeededAsync() { - IP2Country.workQueue.async { + // This has to be sync since the `countryNamesCache` dict doesn't like async access + IP2Country.workQueue.sync { let _ = self.populateCacheIfNeeded() } }