feat worker_loop: always use reschedule in await

it's better than continuing right now because it will potentially
reschedule on the correct runner.
This commit is contained in:
Simon Cruanes 2025-07-09 22:05:36 -04:00
parent 796c4f6f31
commit a24bd7472d
No known key found for this signature in database
GPG key ID: EBFFF6F283F3A2B4

View file

@ -83,8 +83,8 @@ let with_handler (type st) ~(ops : st ops) (self : st) : (unit -> unit) -> unit
let fiber = get_current_fiber_exn () in let fiber = get_current_fiber_exn () in
(* when triggers is signaled, reschedule task *) (* when triggers is signaled, reschedule task *)
if not (Picos.Fiber.try_suspend fiber trigger fiber k reschedule) then if not (Picos.Fiber.try_suspend fiber trigger fiber k reschedule) then
(* trigger was already signaled, run task now *) (* trigger was already signaled, reschedule task now *)
Picos.Fiber.resume fiber k) reschedule trigger fiber k)
| Picos.Computation.Cancel_after _r -> | Picos.Computation.Cancel_after _r ->
Some Some
(fun k -> (fun k ->