Files
wren/test/fiber/run_indirect_reenter.wren
T
Bob Nystrom 10b19d969b feat: implement symmetric coroutines with fiber.call and fiber.run distinction
Add new `fiber.call` method that remembers the calling fiber for symmetric transfer, while `fiber.run` now performs tail-call style switching without preserving the caller. Introduce re-entrancy guards preventing a fiber from being called multiple times, update all test fixtures to use the new API, and add comprehensive test coverage for call semantics including direct/indirect re-entrancy, value passing, and finished fiber errors.
2014-04-14 14:23:05 +00:00

21 lines
199 B
Plaintext

var a
var b
a = new Fiber {
IO.print(2)
b.run
IO.print("nope")
}
b = new Fiber {
IO.print(1)
a.run
IO.print(3)
}
b.call
// expect: 1
// expect: 2
// expect: 3
IO.print(4) // expect: 4