Skip to content

Commit d580cd4

Browse files
committed
Add missing task cancellation check
1 parent 3c72675 commit d580cd4

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

Tool/Sources/XcodeInspector/XcodeInspector.swift

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ public final class XcodeInspector: ObservableObject {
214214
let sequence = NSWorkspace.shared.notificationCenter
215215
.notifications(named: .accessibilityAPIMalfunctioning)
216216
for await notification in sequence {
217+
try Task.checkCancellation()
217218
guard let self else { return }
218219
await self
219220
.recoverFromAccessibilityMalfunctioning(notification.object as? String)
@@ -296,10 +297,10 @@ public final class XcodeInspector: ObservableObject {
296297
}
297298

298299
activeXcodeObservations.insert(malfunctionCheck)
299-
300+
300301
checkForAccessibilityMalfunction("Reactivate Xcode")
301302
}
302-
303+
303304
xcode.$completionPanel.receive(on: DispatchQueue.main).sink { [weak self] element in
304305
self?.completionPanel = element
305306
}.store(in: &activeXcodeCancellable)
@@ -320,7 +321,7 @@ public final class XcodeInspector: ObservableObject {
320321
self?.focusedWindow = window
321322
}.store(in: &activeXcodeCancellable)
322323
}
323-
324+
324325
private var lastRecoveryFromAccessibilityMalfunctioningTimeStamp = Date()
325326

326327
@MainActor
@@ -339,23 +340,24 @@ public final class XcodeInspector: ObservableObject {
339340
{
340341
NSWorkspace.shared.notificationCenter.post(
341342
name: .accessibilityAPIMalfunctioning,
342-
object: "Element Inconsistency: \(source)"
343+
object: "Element Inconsistency: \(source)"
343344
)
344345
}
345346
}
346347
}
347-
348+
348349
@MainActor
349350
private func recoverFromAccessibilityMalfunctioning(_ source: String?) {
351+
let message = """
352+
Accessibility API malfunction detected: \
353+
\(source ?? "").
354+
Resetting active Xcode.
355+
"""
356+
350357
if UserDefaults.shared.value(for: \.toastForTheReasonWhyXcodeInspectorNeedsToBeRestarted) {
351-
toast.toast(
352-
content: """
353-
Accessibility API malfunction detected: \
354-
\(source ?? "").
355-
Resetting active Xcode.
356-
""",
357-
type: .warning
358-
)
358+
toast.toast(content: message, type: .warning)
359+
} else {
360+
Logger.service.info(message)
359361
}
360362
if let activeXcode {
361363
lastRecoveryFromAccessibilityMalfunctioningTimeStamp = Date()

0 commit comments

Comments
 (0)