From 849e126eb07c5a106fcb41bf4a2143ff3f79243d Mon Sep 17 00:00:00 2001 From: Stefan Ceriu Date: Mon, 28 Nov 2022 14:59:40 +0200 Subject: [PATCH] Move room user avatar and display name fetching to a serial queue --- ElementX/Sources/Services/Room/RoomProxy.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ElementX/Sources/Services/Room/RoomProxy.swift b/ElementX/Sources/Services/Room/RoomProxy.swift index fd4b0db2b..afb07415f 100644 --- a/ElementX/Sources/Services/Room/RoomProxy.swift +++ b/ElementX/Sources/Services/Room/RoomProxy.swift @@ -25,7 +25,7 @@ class RoomProxy: RoomProxyProtocol { private let room: RoomProtocol private let backgroundTaskService: BackgroundTaskServiceProtocol - private let concurrentDispatchQueue = DispatchQueue(label: "io.element.elementx.roomproxy", attributes: .concurrent) + private let serialDispatchQueue = DispatchQueue(label: "io.element.elementx.roomproxy.serial") private var sendMessageBgTask: BackgroundTaskProtocol? @@ -104,7 +104,7 @@ class RoomProxy: RoomProxyProtocol { func loadAvatarURLForUserId(_ userId: String) async -> Result { do { - let avatarURL = try await Task.dispatch(on: .global()) { + let avatarURL = try await Task.dispatch(on: serialDispatchQueue) { try self.room.memberAvatarUrl(userId: userId) } update(avatarURL: avatarURL, forUserId: userId) @@ -120,7 +120,7 @@ class RoomProxy: RoomProxyProtocol { func loadDisplayNameForUserId(_ userId: String) async -> Result { do { - let displayName = try await Task.dispatch(on: .global()) { + let displayName = try await Task.dispatch(on: serialDispatchQueue) { try self.room.memberDisplayName(userId: userId) } update(displayName: displayName, forUserId: userId) @@ -134,7 +134,7 @@ class RoomProxy: RoomProxyProtocol { if let displayName { return .success(displayName) } do { - let displayName = try await Task.dispatch(on: .global()) { + let displayName = try await Task.dispatch(on: serialDispatchQueue) { try self.room.displayName() } update(displayName: displayName)