@@ -191,22 +191,14 @@ final class MenuBarItemImageCache: ObservableObject {
191
191
192
192
/// Updates the cache for the given sections, without checking whether caching is necessary.
193
193
func updateCacheWithoutChecks( sections: [ MenuBarSection . Name ] ) async {
194
- actor Context {
195
- var images = [ MenuBarItemInfo: CGImage] ( )
196
-
197
- func merge( _ other: [ MenuBarItemInfo : CGImage ] ) {
198
- images. merge ( other) { ( _, new) in new }
199
- }
200
- }
201
-
202
194
guard
203
195
let appState,
204
196
let screen = NSScreen . main
205
197
else {
206
198
return
207
199
}
208
200
209
- let context = Context ( )
201
+ var newImages = [ MenuBarItemInfo : CGImage ] ( )
210
202
211
203
for section in sections {
212
204
guard await !appState. itemManager. itemCache [ section] . isEmpty else {
@@ -217,14 +209,12 @@ final class MenuBarItemImageCache: ObservableObject {
217
209
Logger . imageCache. warning ( " Update image cache failed for \( section. logString) " )
218
210
continue
219
211
}
220
- await context . merge ( sectionImages)
212
+ newImages . merge ( sectionImages) { ( _ , new ) in new }
221
213
}
222
214
223
- let task = Task { @MainActor in
224
- let images = await context. images
225
- self . images. merge ( images) { ( _, new) in new }
215
+ await MainActor . run { [ newImages] in
216
+ images. merge ( newImages) { ( _, new) in new }
226
217
}
227
- await task. value
228
218
229
219
self . screen = screen
230
220
self . menuBarHeight = screen. getMenuBarHeight ( )
@@ -292,6 +282,7 @@ final class MenuBarItemImageCache: ObservableObject {
292
282
}
293
283
294
284
// MARK: - Logger
285
+
295
286
private extension Logger {
296
287
static let imageCache = Logger ( category: " MenuBarItemImageCache " )
297
288
}
0 commit comments