@@ -52,7 +52,6 @@ final class MapMarkerBuilder {
5252
5353 if !prev. markerStyleEquals ( next) {
5454 buildIconAsync ( next) { img in
55- m. tracksViewChanges = true
5655 m. icon = img
5756
5857 if !prev. anchorEquals ( next) {
@@ -69,9 +68,9 @@ final class MapMarkerBuilder {
6968 )
7069 }
7170
72- onMainAsync { [ weak m ] in
73- try ? await Task . sleep ( nanoseconds : 250_000_000 )
74- m? . tracksViewChanges = false
71+ m . tracksViewChanges = true
72+ DispatchQueue . main . async {
73+ m. tracksViewChanges = false
7574 }
7675 }
7776 } else {
@@ -102,11 +101,10 @@ final class MapMarkerBuilder {
102101 m. snippet = next. snippet
103102 }
104103
105- if ( tracksInfoWindowChanges) {
104+ if tracksInfoWindowChanges {
106105 m. tracksInfoWindowChanges = true
107- onMainAsync { [ weak m] in
108- try ? await Task . sleep ( nanoseconds: 250_000_000 )
109- m? . tracksInfoWindowChanges = false
106+ DispatchQueue . main. async {
107+ m. tracksInfoWindowChanges = false
110108 }
111109 }
112110
@@ -140,7 +138,6 @@ final class MapMarkerBuilder {
140138 }
141139 }
142140
143- @MainActor
144141 func buildIconAsync(
145142 _ m: RNMarker ,
146143 onReady: @escaping ( UIImage ? ) -> Void
@@ -158,11 +155,14 @@ final class MapMarkerBuilder {
158155 return
159156 }
160157
158+ let scale = UIScreen . main. scale
159+
161160 let task = Task ( priority: . userInitiated) { [ weak self] in
162161 guard let self else { return }
163- defer { self . tasks. removeValue ( forKey: m. id) }
162+ defer {
163+ Task { @MainActor in self . tasks. removeValue ( forKey: m. id) }
164+ }
164165
165- let scale = UIScreen . main. scale
166166 let img = await self . renderUIImage ( m, scale)
167167 guard let img, !Task. isCancelled else { return }
168168
@@ -233,7 +233,6 @@ final class MapMarkerBuilder {
233233 return imageView
234234 }
235235
236- @MainActor
237236 private func renderUIImage( _ m: RNMarker , _ scale: CGFloat ) async -> UIImage ? {
238237 guard let iconSvg = m. iconSvg,
239238 let data = iconSvg. svgString. data ( using: . utf8)
0 commit comments