feedback7 G-TOOLS: SP_VERIFY re-runs slice work in the existing 8 ms budget instead of blocking the event loop (PR #352 by @siruimei07)
Applied as-is. All-mode verification runs the existing HeadlessJob in headlessSliceMs slices (8 ms on a real scheduler; synchronous when that value is not finite, including the virtual scheduler). The field still settles with the server digest. Sample mode still accepts the client result immediately and logs afterwards. A comparison error in all mode falls back to the server result. Dispose cancels the pending slice timer. Tests: node --test test/match/verification-slices.test.js — 11 pass, 0 fail; node --test test/match/clientCombat.test.js test/match/clientCombat-review.test.js — 39 pass, 0 fail.
This commit is contained in:
1 parent
8597b66df3
commit
a2a3f52418
4 files changed
+317
-32
No files matched your search
@@ -106,7 +106,7 @@
|
||||
// (g.bandFocus → timeoutBand); g.unitStats answers m.unitStats: the stats the board's units start their next battle with.
|
||||
// opts.clientCombat default true (env SP_COMBAT=server → false: the legacy server-run + snapshot streaming mode)
|
||||
// opts.verify 'off' | 'sample' | 'all' (env SP_VERIFY, default 'off'): re-simulate accepted client results
|
||||
// ('sample': ~1 in 8, in a later callback, mismatches logged; 'all': before accepting — the
|
||||
// ('sample': ~1 in 8, in later slices, mismatches logged; 'all': before accepting — the
|
||||
// server's result wins on a mismatch)
|
||||
//
|
||||
// Engine-only extra options (tests / tools; the lobby never passes them):
|
||||
@@ -121,7 +121,7 @@
|
||||
// opts.botSliceMs wall-clock ms of rehearsal per scheduler callback (default 8 with a real scheduler, unbounded
|
||||
// with a virtual one); the rest runs in later callbacks (scheduleBotPrep)
|
||||
// opts.headlessSliceMs wall-clock ms per callback of a server-run normal / 联防 field (client-side combat: bots,
|
||||
// takeovers; default 8 with a real scheduler, at once with a virtual one)
|
||||
// takeovers, result verification; default 8 with a real scheduler, at once with a virtual one)
|
||||
// Seats may be all bots (tools/matchrun.mjs); the lobby always has ≥ 1 human.
|
||||
//
|
||||
// Diagnostics: m.errors / m.errorCount (engine), m.dispatcher.errors / .errorsByKey (meta handlers), m.simErrors
|
||||
|
||||
Reference in new issue
Block a user