From ca7637f84bf640ceaed0cbbe33a6eddbd0e73b8b Mon Sep 17 00:00:00 2001 From: Nicolas Mauri Date: Tue, 19 Dec 2023 16:05:21 +0100 Subject: [PATCH] Fix a crash that can occur when updating timeline items in a background thread (#2268) --- .../TimelineController/RoomTimelineController.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ElementX/Sources/Services/Timeline/TimelineController/RoomTimelineController.swift b/ElementX/Sources/Services/Timeline/TimelineController/RoomTimelineController.swift index 6082e6d01..04a9dbaf6 100644 --- a/ElementX/Sources/Services/Timeline/TimelineController/RoomTimelineController.swift +++ b/ElementX/Sources/Services/Timeline/TimelineController/RoomTimelineController.swift @@ -238,7 +238,9 @@ class RoomTimelineController: RoomTimelineControllerProtocol { @objc private func contentSizeCategoryDidChange() { // Recompute all attributed strings on content size changes -> DynamicType support - updateTimelineItems() + serialDispatchQueue.async { + self.updateTimelineItems() + } } private func updateTimelineItems() { @@ -303,7 +305,9 @@ class RoomTimelineController: RoomTimelineControllerProtocol { } } - timelineItems = newTimelineItems + DispatchQueue.main.sync { + timelineItems = newTimelineItems + } callbacks.send(.updatedTimelineItems) callbacks.send(.canBackPaginate(canBackPaginate))