Trying to use the following ObservableObject backed by an actor and getting an error when awaiting Task.sleep
EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
Any ideas?
class Reader: ObservableObject {
static let shared = Reader(actor: .init())
let actor: TestActor
@Published var val = 0
@MainActor func read() async {
val = await actor.val
}
func increment() async -> Bool {
await actor.increment()
await read()
return true
}
init(actor: TestActor) {
self.actor = actor
}
}
actor TestActor {
var val = 0
func increment() async {
let oldval = val
await Task.sleep(2000000000) // Error here!
val += 1
}
}```