Код: Выделить всё
@globalActor
public struct TestGlobalActor {
public actor ActorType { }
public static let shared: ActorType = ActorType()
}
final class TestCrash: XCTestCase {
let subject = CurrentValueSubject(1)
@TestGlobalActor
func testCrash() async throws {
let cancellable = subject.sink { value in
print("\(value)")
}
performSelector(inBackground: #selector(triggerSubject), with: nil) // Crashes
//perform(#selector(triggerSubject), with: nil) // Does not crash
try await Task.sleep(nanoseconds: 1000000000)
_ = cancellable
}
@objc func triggerSubject() {
subject.send(2)
}
}
- The above code crashes in Swift 6, not Swift 5.
- Change @TestGlobalActor to @MainActor, it still crashes
Что может быть причиной?>
Подробнее здесь: https://stackoverflow.com/questions/796 ... bine-crash
Мобильная версия