Retoor software development Projects Research SearchXNG
Register Sign In

13 lines
269 B
Plaintext
Raw Normal View History

feat: replace fiber run() with transfer() and suspend() for scheduler-friendly semantics Remove the run() method from fibers and introduce transfer() for non-stack-based fiber switching, along with suspend() to pause the interpreter and return control to the host application. Update Timer.sleep() to use runNextScheduled_() instead of Fiber.yield(), and add Timer.schedule() for creating independently scheduled fibers. Refactor the core fiber runtime to support transfer semantics, including proper error handling for aborted fibers and self-transfer edge cases. Fix a missing quote in test.py's runtime error validation string.
2015-08-31 07:15:37 +02:00
var main = Fiber.current
var fiber = Fiber.new {
IO.print("transferred")
IO.print(main.transfer())
IO.print("called")
}
fiber.transfer() // expect: transferred
IO.print("main") // expect: main
fiber.call() // expect: null
// expect: called
Reference in New Issue Copy Permalink
d2c8bacbaa
wren/test/core/fiber/call_transferred.wren
Response time: 86ms
Mail Licenses API