docs(scripting): T starts at the run's start but is wall clock from there; document the late-notice, ceiling and counter rules (#827 review F4)
The proto comment, VirtualTags.md and CLAUDE.md said the soft deadline measures the script's own execution and that starvation never counts. Only the time before the run STARTS is excluded; from the start it is wall-clock time, as in process, so a GC pause or a starved / suspended worker during the run still counts. A mid-run freeze test is not added: it races the script's own return against the watchdog's notice; documented as not covered. Also documents F2 (late notice cancels and counts), F3 (progress ceiling, killed_unresponsive) and F5 (answer = stalled | retrigger).
This commit is contained in:
@@ -204,8 +204,9 @@ internal sealed class WorkerConnection : IAsyncDisposable
|
||||
|
||||
/// <summary>
|
||||
/// lmxopcua#827: the worker runs each evaluation's soft clock from the moment an evaluation thread starts it and
|
||||
/// reports the crossing, so the soft deadline measures the script's own execution — not the pipe, not the time
|
||||
/// a starved worker takes to be scheduled. The host keeps a transport deadline of its own instead (see
|
||||
/// reports the crossing, so the soft deadline no longer counts the pipe or the time a starved worker takes to
|
||||
/// START the run. From the start it is wall-clock time, as in process: a pause during the run still counts. The
|
||||
/// host keeps a transport deadline of its own instead (see
|
||||
/// <see cref="PendingEval"/>). Negotiated: asked for in <c>Hello</c>, true only when the worker echoed it in
|
||||
/// <c>Ready</c>; otherwise the host's clock, started at submit, is the soft deadline (the pre-#827 contract).
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user