-
Joined on
2025年09月18日
There may be some implications for behavior, though.
sleep-operation/check (and the overslept option of get-message*) may become obsolete once Fibers is using monotonic timers. The only Shepherd code that distinguishes the overslept case is:
Updated the PR to (re-)initialize the op's internal state in the try-fn.
Updated the PR, adding a definition of "nack" to the make-base-operation/internal docstring.
I opted to remove this particular change from the PR. It's not strictly necessary for the implementations of timer and port waiter cancellation.
Fair enough, though I'd be hard-pressed to explain the semantics of get-internal-real-time, other than based on the implementation. The documentation says:
Indeed, Racket's alarm-evt seems equivalent to Fiber's timer-operation. The latter is what a call to sleep-operation actually constructs and returns (though this is not obvious, and may not...
Relying on get-internal-real-time can cause other interesting failures, like negative time values.
I added this because, in the general sense, it is indeed a case where the other operations were not (or will not be) chosen.
NACK is certainly jargon, though as the the Fibers manual says:
Thanks for taking the time to look at all this, @civodul.