fix(companion): synthesize gestures synchronously to avoid the async completion crash

This commit is contained in:
pj committed 2026-06-07 15:50:46 +05:30
1 parent c3e0de547e
commit 76cbf1a102
2 files changed
+7 -12

No files matched your search

+4 -12
View File
@@ -73,17 +73,9 @@ enum Gesture {
let record = XCSynthesizedEventRecord(name: "companion", interfaceOrientation: 0)
record.add(path)
let semaphore = DispatchSemaphore(value: 0)
var synthesisError: Error?
XCTRunnerDaemonSession.shared().synthesize(event: record) { error in
synthesisError = error
semaphore.signal()
}
if semaphore.wait(timeout: .now() + 30) == .timedOut {
throw GestureError.synthesisTimeout
}
if let synthesisError = synthesisError {
throw GestureError.synthesisFailed("\(synthesisError)")
}
// Synchronous delivery: returns whether the event was synthesized and
// populates the error out-pointer on failure. This avoids the async
// completion-block path.
try record.synthesize()
}
}