From e3363041ab5bba15107854d31d3380c7576350ef Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Mon, 27 Jul 2020 16:20:15 -0500 Subject: [PATCH] Change Reddit and Twitter feed providers to use dedicated instead of global queues for parsing --- .../Account/FeedProvider/Reddit/RedditFeedProvider.swift | 4 +++- .../Account/FeedProvider/Twitter/TwitterFeedProvider.swift | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Frameworks/Account/FeedProvider/Reddit/RedditFeedProvider.swift b/Frameworks/Account/FeedProvider/Reddit/RedditFeedProvider.swift index b293e69f8..65b4fb871 100644 --- a/Frameworks/Account/FeedProvider/Reddit/RedditFeedProvider.swift +++ b/Frameworks/Account/FeedProvider/Reddit/RedditFeedProvider.swift @@ -48,6 +48,8 @@ public final class RedditFeedProvider: FeedProvider { "all": NSLocalizedString("All", comment: "All") ] + private var parsingQueue = DispatchQueue(label: "RedditFeedProvider parse queue") + public var username: String? private var oauthToken: String @@ -192,7 +194,7 @@ public final class RedditFeedProvider: FeedProvider { fetch(api: api, parameters: [:], resultType: RedditLinkListing.self) { result in switch result { case .success(let linkListing): - DispatchQueue.global(qos: .background).async { + self.parsingQueue.async { let parsedItems = self.makeParsedItems(webFeed.url, identifySubreddit, linkListing) DispatchQueue.main.async { completion(.success(parsedItems)) diff --git a/Frameworks/Account/FeedProvider/Twitter/TwitterFeedProvider.swift b/Frameworks/Account/FeedProvider/Twitter/TwitterFeedProvider.swift index 9fbfa2429..5df94b4ac 100644 --- a/Frameworks/Account/FeedProvider/Twitter/TwitterFeedProvider.swift +++ b/Frameworks/Account/FeedProvider/Twitter/TwitterFeedProvider.swift @@ -47,6 +47,8 @@ public final class TwitterFeedProvider: FeedProvider { private static let userPaths = ["/home", "/notifications"] private static let reservedPaths = ["/search", "/explore", "/messages", "/i", "/compose"] + private var parsingQueue = DispatchQueue(label: "TwitterFeedProvider parse queue") + public var screenName: String private var oauthToken: String @@ -227,7 +229,7 @@ public final class TwitterFeedProvider: FeedProvider { if let sinceID = statuses.first?.idStr { webFeed.sinceToken = sinceID } - DispatchQueue.global(qos: .background).async { + self.parsingQueue.async { let parsedItems = self.makeParsedItems(webFeed.url, statuses) DispatchQueue.main.async { completion(.success(parsedItems))