pub struct Stop(/* private fields */);Expand description
Whether the caller still wants the reply.
docs/80 §80.12 named the gap this
closes: cancellation rides the evaluator’s step counter, so a parallel: child blocked inside
an outbound call was stopped only when the call came back — a scope whose first child failed
still waited out a sibling’s ten-second timeout. §80.12 also says where the fix belongs: “a
deadline on the net seam rather than a change to the scope”, because the
scope is already right about when to stop a child and the thing it cannot reach is a socket.
A predicate rather than a token or a channel, for the reason the rest of this seam is what it
is: the caller already knows the answer — beck-eval has the chain of enclosing scopes and
their first-failed indices — and anything richer would be a second copy of that state, kept in
step by hand.
Implementations§
Source§impl Stop
impl Stop
Sourcepub fn never() -> Stop
pub fn never() -> Stop
Nobody is going to stop this call, so an implementation need not watch for it.
Stop::watched is false for this one, which is what lets a client take the path with no
timer in it — the ordinary case, since only a child of a parallel: can be cancelled.