@indigoai-us/hq-cloud 6.18.44-alpha.3 → 6.18.44-alpha.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/sync-runner-watch-loop.d.ts +18 -0
- package/dist/bin/sync-runner-watch-loop.d.ts.map +1 -1
- package/dist/bin/sync-runner-watch-loop.js +75 -6
- package/dist/bin/sync-runner-watch-loop.js.map +1 -1
- package/dist/bin/sync-runner-watch-loop.test.js +2 -1
- package/dist/bin/sync-runner-watch-loop.test.js.map +1 -1
- package/dist/bin/sync-runner.test.js +100 -6
- package/dist/bin/sync-runner.test.js.map +1 -1
- package/dist/cli/reindex-knowledge.test.js +88 -30
- package/dist/cli/reindex-knowledge.test.js.map +1 -1
- package/dist/cli/reindex.test.js +43 -38
- package/dist/cli/reindex.test.js.map +1 -1
- package/dist/cli/rescue-breaker.test.js +2 -1
- package/dist/cli/rescue-breaker.test.js.map +1 -1
- package/dist/cli/rescue-classify-ordering.test.js +9 -6
- package/dist/cli/rescue-classify-ordering.test.js.map +1 -1
- package/dist/cli/rescue-clone-diagnostics.test.js +3 -2
- package/dist/cli/rescue-clone-diagnostics.test.js.map +1 -1
- package/dist/cli/rescue-clone-network-retry.test.js +8 -9
- package/dist/cli/rescue-clone-network-retry.test.js.map +1 -1
- package/dist/cli/rescue-core-stamp.test.js +2 -1
- package/dist/cli/rescue-core-stamp.test.js.map +1 -1
- package/dist/cli/rescue-drift-reconcile.test.js +5 -4
- package/dist/cli/rescue-drift-reconcile.test.js.map +1 -1
- package/dist/cli/rescue-drop-dir-symlink.test.js +2 -1
- package/dist/cli/rescue-drop-dir-symlink.test.js.map +1 -1
- package/dist/cli/rescue-exec-bit-preserve.test.js +2 -1
- package/dist/cli/rescue-exec-bit-preserve.test.js.map +1 -1
- package/dist/cli/rescue-hq-root-guard.test.js +5 -4
- package/dist/cli/rescue-hq-root-guard.test.js.map +1 -1
- package/dist/cli/rescue-journal-reconcile.test.js +6 -5
- package/dist/cli/rescue-journal-reconcile.test.js.map +1 -1
- package/dist/cli/rescue-keep-local-ignore.test.js +4 -2
- package/dist/cli/rescue-keep-local-ignore.test.js.map +1 -1
- package/dist/cli/rescue-move.test.js +8 -3
- package/dist/cli/rescue-move.test.js.map +1 -1
- package/dist/cli/rescue-mtime-preserve.test.js +2 -1
- package/dist/cli/rescue-mtime-preserve.test.js.map +1 -1
- package/dist/cli/rescue-preserve-copy-symlink.test.js +2 -1
- package/dist/cli/rescue-preserve-copy-symlink.test.js.map +1 -1
- package/dist/cli/rescue-rsync-preflight.test.js +6 -9
- package/dist/cli/rescue-rsync-preflight.test.js.map +1 -1
- package/dist/cli/rescue-settings-reconcile.test.js +2 -1
- package/dist/cli/rescue-settings-reconcile.test.js.map +1 -1
- package/dist/cli/rescue-snapshot-copy.test.js +16 -7
- package/dist/cli/rescue-snapshot-copy.test.js.map +1 -1
- package/dist/cli/rescue-snapshot-recovery.test.js +14 -8
- package/dist/cli/rescue-snapshot-recovery.test.js.map +1 -1
- package/dist/cli/rescue-source-switch-floor.test.js +2 -1
- package/dist/cli/rescue-source-switch-floor.test.js.map +1 -1
- package/dist/cli/rescue-unchanged-delete.test.js +51 -31
- package/dist/cli/rescue-unchanged-delete.test.js.map +1 -1
- package/dist/cli/rescue-windows-test-harness.d.ts +8 -0
- package/dist/cli/rescue-windows-test-harness.d.ts.map +1 -0
- package/dist/cli/rescue-windows-test-harness.js +285 -0
- package/dist/cli/rescue-windows-test-harness.js.map +1 -0
- package/dist/cli/rescue-windows-test-harness.test.d.ts +2 -0
- package/dist/cli/rescue-windows-test-harness.test.d.ts.map +1 -0
- package/dist/cli/rescue-windows-test-harness.test.js +58 -0
- package/dist/cli/rescue-windows-test-harness.test.js.map +1 -0
- package/dist/cli/share.test.js +2 -1
- package/dist/cli/share.test.js.map +1 -1
- package/dist/cli/sync.test.js +1 -1
- package/dist/cli/sync.test.js.map +1 -1
- package/dist/journal-snapshot-memory-helpers.d.ts +3 -1
- package/dist/journal-snapshot-memory-helpers.d.ts.map +1 -1
- package/dist/journal-snapshot-memory-helpers.js +103 -17
- package/dist/journal-snapshot-memory-helpers.js.map +1 -1
- package/dist/journal-snapshot-memory.test.js +10 -2
- package/dist/journal-snapshot-memory.test.js.map +1 -1
- package/dist/machine-auth.test.js +11 -1
- package/dist/machine-auth.test.js.map +1 -1
- package/dist/manifest/bench-gate.d.ts +30 -0
- package/dist/manifest/bench-gate.d.ts.map +1 -0
- package/dist/manifest/bench-gate.js +47 -0
- package/dist/manifest/bench-gate.js.map +1 -0
- package/dist/manifest/bench-gate.test.d.ts +2 -0
- package/dist/manifest/bench-gate.test.d.ts.map +1 -0
- package/dist/manifest/bench-gate.test.js +67 -0
- package/dist/manifest/bench-gate.test.js.map +1 -0
- package/dist/manifest/build-manifest.bench.test.js +19 -18
- package/dist/manifest/build-manifest.bench.test.js.map +1 -1
- package/dist/outposts/replica-sync.test.js +6 -5
- package/dist/outposts/replica-sync.test.js.map +1 -1
- package/dist/outposts/session-heartbeat-bounds.test.js +6 -3
- package/dist/outposts/session-heartbeat-bounds.test.js.map +1 -1
- package/dist/outposts/session-heartbeat-scan.test.js +11 -10
- package/dist/outposts/session-heartbeat-scan.test.js.map +1 -1
- package/dist/outposts/session-heartbeat.test.js +37 -20
- package/dist/outposts/session-heartbeat.test.js.map +1 -1
- package/dist/outposts/session-host-command.test.js +4 -2
- package/dist/outposts/session-host-command.test.js.map +1 -1
- package/dist/skill-telemetry.test.js +1 -1
- package/dist/skill-telemetry.test.js.map +1 -1
- package/dist/sync/event-sync.test.js +4 -1
- package/dist/sync/event-sync.test.js.map +1 -1
- package/dist/watcher-continuity-hot-path.test.js +1 -1
- package/dist/watcher-continuity-hot-path.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -113,6 +113,16 @@ export declare class CooperativePassScheduler<T> {
|
|
|
113
113
|
private handoffBacklog;
|
|
114
114
|
private handoffDeferredAt;
|
|
115
115
|
private handoffAdmitted;
|
|
116
|
+
/**
|
|
117
|
+
* How many cap checkpoints are inside `applyAtCheckpoint`. The CPU yield
|
|
118
|
+
* sleeps between hand-offs; those sleeps are not an admission boundary.
|
|
119
|
+
* Depth stays above zero for the whole yield so a receiver pull that
|
|
120
|
+
* arrives during a sleep starts immediately instead of waiting for the
|
|
121
|
+
* next timer slice.
|
|
122
|
+
*/
|
|
123
|
+
private capYieldDepth;
|
|
124
|
+
/** Set when realtime work starts at any point inside the current cap yield. */
|
|
125
|
+
private capYieldAdmitted;
|
|
116
126
|
private occupantEpoch;
|
|
117
127
|
private occupantWaiters;
|
|
118
128
|
private activeFastRealtime;
|
|
@@ -210,6 +220,14 @@ export declare class CooperativePassScheduler<T> {
|
|
|
210
220
|
*/
|
|
211
221
|
private admitHandoffBacklog;
|
|
212
222
|
private canAdmitRealtimeOccupant;
|
|
223
|
+
private waitForRealtimeOccupants;
|
|
224
|
+
/**
|
|
225
|
+
* A cap checkpoint is already a durable boundary. Keep the hand-off open
|
|
226
|
+
* for the whole yield, including the throttle sleep between slices, and
|
|
227
|
+
* do not bill realtime work admitted there to the chore.
|
|
228
|
+
*/
|
|
229
|
+
private enterCapYield;
|
|
230
|
+
private exitCapYield;
|
|
213
231
|
private drainRealtime;
|
|
214
232
|
private checkpoint;
|
|
215
233
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-runner-watch-loop.d.ts","sourceRoot":"","sources":["../../src/bin/sync-runner-watch-loop.ts"],"names":[],"mappings":"AAmCA,OAAO,EAML,KAAK,UAAU,EAEf,KAAK,eAAe,EACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAUL,WAAW,EAYZ,MAAM,eAAe,CAAC;AAevB,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AASlC,OAAO,EACL,UAAU,EA0CX,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EAEL,qBAAqB,EAEtB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,KAAK,eAAe,EAIrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAahD,OAAO,KAAK,EACV,yBAAyB,EACzB,SAAS,EAET,cAAc,EACd,iBAAiB,EAElB,MAAM,kBAAkB,CAAC;AAI1B,+EAA+E;AAC/E,eAAO,MAAM,mCAAmC,OAAQ,CAAC;AACzD,yEAAyE;AACzE,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AACtD;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,QACI,CAAC;AAChD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAiC,CAAC;AACtE;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAC/C,+EAA+E;AAC/E,eAAO,MAAM,qCAAqC,QAA4B,CAAC;AAK/E,wBAAgB,wCAAwC,CACtD,EAAE,EAAE,MAAM,GAAG,SAAS,GACrB,IAAI,CAEN;AAED,wBAAgB,iCAAiC,CAC/C,EAAE,EAAE,MAAM,GAAG,SAAS,GACrB,IAAI,CAEN;AAUD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,QAAQ,CAAC,SAAS,QAAQ;gBACd,UAAU,EAAE,MAAM;CAI/B;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,SAAS,QAAQ;gBACd,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAuBrB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG;IACxD,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CASA;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,eAAe,EAAE,GAChC,uBAAuB,GAAG,SAAS,CAkBrC;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,OAAO,CAAC;AAEpD,wBAAgB,oCAAoC,CAClD,SAAS,EAAE,gBAAgB,EAC3B,iBAAiB,EAAE,OAAO,GACzB,OAAO,CAGT;AAED,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,UAAU,EAAE,yBAAyB,CAAC;IACtC,iDAAiD;IACjD,MAAM,EAAE,WAAW,CAAC;CACrB;AAwBD;;;;;;;;GAQG;AACH,qBAAa,wBAAwB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-runner-watch-loop.d.ts","sourceRoot":"","sources":["../../src/bin/sync-runner-watch-loop.ts"],"names":[],"mappings":"AAmCA,OAAO,EAML,KAAK,UAAU,EAEf,KAAK,eAAe,EACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAUL,WAAW,EAYZ,MAAM,eAAe,CAAC;AAevB,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AASlC,OAAO,EACL,UAAU,EA0CX,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EAEL,qBAAqB,EAEtB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,KAAK,eAAe,EAIrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAahD,OAAO,KAAK,EACV,yBAAyB,EACzB,SAAS,EAET,cAAc,EACd,iBAAiB,EAElB,MAAM,kBAAkB,CAAC;AAI1B,+EAA+E;AAC/E,eAAO,MAAM,mCAAmC,OAAQ,CAAC;AACzD,yEAAyE;AACzE,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AACtD;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,QACI,CAAC;AAChD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAiC,CAAC;AACtE;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAC/C,+EAA+E;AAC/E,eAAO,MAAM,qCAAqC,QAA4B,CAAC;AAK/E,wBAAgB,wCAAwC,CACtD,EAAE,EAAE,MAAM,GAAG,SAAS,GACrB,IAAI,CAEN;AAED,wBAAgB,iCAAiC,CAC/C,EAAE,EAAE,MAAM,GAAG,SAAS,GACrB,IAAI,CAEN;AAUD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,QAAQ,CAAC,SAAS,QAAQ;gBACd,UAAU,EAAE,MAAM;CAI/B;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,SAAS,QAAQ;gBACd,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAuBrB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG;IACxD,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CASA;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,eAAe,EAAE,GAChC,uBAAuB,GAAG,SAAS,CAkBrC;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,OAAO,CAAC;AAEpD,wBAAgB,oCAAoC,CAClD,SAAS,EAAE,gBAAgB,EAC3B,iBAAiB,EAAE,OAAO,GACzB,OAAO,CAGT;AAED,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,UAAU,EAAE,yBAAyB,CAAC;IACtC,iDAAiD;IACjD,MAAM,EAAE,WAAW,CAAC;CACrB;AAwBD;;;;;;;;GAQG;AACH,qBAAa,wBAAwB,CAAC,CAAC;IAyCnC,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO;IA1C1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,MAAM,CAAqC;IACnD,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmC;IACrE,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,eAAe,CAAS;IAChC;;;;;;OAMG;IACH,OAAO,CAAC,aAAa,CAAK;IAC1B,+EAA+E;IAC/E,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,eAAe,CAAyB;IAIhD,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAS;IAC/B,4EAA4E;IAC5E,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,sBAAsB,CAAyB;IACvD,OAAO,CAAC,sBAAsB,CAAiC;IAC/D,OAAO,CAAC,6BAA6B,CAAiD;IACtF,4EAA4E;IAC5E,OAAO,CAAC,8BAA8B,CAAK;IAC3C,OAAO,CAAC,2BAA2B,CAA8B;IACjE,OAAO,CAAC,kCAAkC,CAA6B;gBAGpD,GAAG,EAAE,MAAM,MAAM,EACjB,eAAe,SAA0B,EACzC,OAAO,GAAE;QACxB,IAAI,CAAC,EAAE,qBAAqB,CAAC;KACzB;IAGR,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED;;;OAGG;IACH,OAAO,KAAK,cAAc,GAEzB;IAED,IAAI,qBAAqB,IAAI,OAAO,CAEnC;IAED,+FAA+F;IAC/F,IAAI,yBAAyB,IAAI,MAAM,CAMtC;IAED,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAI/C,MAAM,CACJ,IAAI,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,SAAS,EAAE,gBAAgB,EAC3B,IAAI,GAAE,MAAM,GAAG,MAAe,EAC9B,yBAAyB,UAAQ,EACjC,MAAM,CAAC,EAAE,WAAW,EACpB,WAAW,UAAwB,EACnC,sBAAsB,UAAQ,EAC9B,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,EACnC,iBAAiB,GAAE,OAAO,GAAG,OAAO,GAAG,SAAqB,GAC3D,OAAO,CAAC,CAAC,CAAC;IAoFb,IAAI,IAAI,IAAI;IAaZ,OAAO,CAAC,YAAY;IAMpB,6EAA6E;IAC7E,OAAO,CAAC,cAAc;IAatB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IASpB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,KAAK;IAoBb,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,KAAK;IA0Bb,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,sBAAsB;IAM9B;;;;OAIG;YACW,uBAAuB;YAgIvB,wBAAwB;IAiCtC,OAAO,CAAC,+BAA+B;IASvC,OAAO,CAAC,kCAAkC;IAU1C,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;IAO5B,sFAAsF;IACtF,OAAO,CAAC,qBAAqB;IAiC7B,+EAA+E;IAC/E,OAAO,CAAC,wBAAwB;IAmBhC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,wBAAwB;YAQlB,wBAAwB;IAQtC;;;;OAIG;IACH,OAAO,CAAC,aAAa;YAQP,YAAY;YAUZ,aAAa;YA+Db,UAAU;CAoBzB;AAGD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,OAAO,GAAG,aAAa,EACpC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAMT;AAmDD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAChD,eAAO,MAAM,qBAAqB,8BAA8B,CAAC;AAEjE,iFAAiF;AACjF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAc9E;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,gCAAgC,CAAC;AACrE,eAAO,MAAM,uBAAuB,gCAAgC,CAAC;AACrE,eAAO,MAAM,4BAA4B,qCAAqC,CAAC;AAC/E,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,eAAO,MAAM,2BAA2B,QAAkB,CAAC;AAC3D;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,QAAa,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAU5E;AAUD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAoC1C,gFAAgF;AAChF,MAAM,WAAW,yBAAyB;IACxC,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,CAAC;IACtC,kEAAkE;IAClE,cAAc,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACzD,qEAAqE;IACrE,YAAY,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CACxD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,yBAAyB,GAAG,UAAU,CAY9E;AAED,wBAAgB,qBAAqB,IAAI;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,CASA;AAED,6EAA6E;AAC7E,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,EAAE,CAAC,EAAE,CAAC;CACX;AAiDD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG;IAC3D,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAC7B,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;CAC9B,CA4BA;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EACvB,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,GACtD,OAAO,CAyBT;AAED,6FAA6F;AAC7F,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAgB3F;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAInE;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAQvF;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,wBAAgB,sBAAsB,CACpC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,MAAM,CAMR;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,MAAM,GACZ;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAA;CAAE,CAiC/D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,qBAAqB,8BAA8B,CAAC;AACjE,eAAO,MAAM,yBAAyB,EAAE,MAAM,GAAG,SAA2B,CAAC;AAE7E,wBAAgB,sBAAsB,CACpC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,MAAM,GAAG,SAAS,CAOpB;AAiBD,iFAAiF;AACjF,eAAO,MAAM,4BAA4B,QAAa,CAAC;AACvD,kFAAkF;AAClF,eAAO,MAAM,gCAAgC,QAAc,CAAC;AAE5D;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,MAA+B,EACxC,MAAM,GAAE,MAA8B,GACrC,MAAM,CAKR;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,qBAAqB,EAAE,OAAO,EAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,MAAM,CAKR;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,GACjB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAUxC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC,EAAE,CACnC,QAAQ,EAAE,MAAM,EAAE,EAClB,UAAU,CAAC,EAAE,yBAAyB,EACtC,eAAe,CAAC,EAAE,MAAM,IAAI,EAC5B,gBAAgB,CAAC,EAAE,CACjB,OAAO,EAAE,aAAa,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,KAClE,IAAI,EACT,gBAAgB,CAAC,EAAE,OAAO,GAAG,UAAU,EACvC,SAAS,CAAC,EAAE,WAAW,EACvB,YAAY,CAAC,EAAE,MAAM,IAAI,EACzB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,gBAAgB,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,KAC9D,OAAO,CAAC,MAAM,GAAG,iBAAiB,CAAC,CAAC;IACzC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,eAAe,CAAC,GAAG,IAAI,CAAC;IAC7E,qBAAqB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC;AAwC5D;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,QAAQ,GAAG,WAAW,GAC3B,KAAK,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CASvC;AAED;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,SAAS,EACzC,gBAAgB,EAAE,MAAM,GACvB,MAAM,GAAG,SAAS,CAQpB;AAWD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oCAAoC,CAClD,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,GACrB,OAAO,CAIT;AAeD,wBAAgB,0CAA0C,CACxD,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAET;AA8ED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAwsIjB"}
|
|
@@ -209,6 +209,16 @@ export class CooperativePassScheduler {
|
|
|
209
209
|
handoffBacklog = null;
|
|
210
210
|
handoffDeferredAt = null;
|
|
211
211
|
handoffAdmitted = false;
|
|
212
|
+
/**
|
|
213
|
+
* How many cap checkpoints are inside `applyAtCheckpoint`. The CPU yield
|
|
214
|
+
* sleeps between hand-offs; those sleeps are not an admission boundary.
|
|
215
|
+
* Depth stays above zero for the whole yield so a receiver pull that
|
|
216
|
+
* arrives during a sleep starts immediately instead of waiting for the
|
|
217
|
+
* next timer slice.
|
|
218
|
+
*/
|
|
219
|
+
capYieldDepth = 0;
|
|
220
|
+
/** Set when realtime work starts at any point inside the current cap yield. */
|
|
221
|
+
capYieldAdmitted = false;
|
|
212
222
|
occupantEpoch = 0;
|
|
213
223
|
occupantWaiters = [];
|
|
214
224
|
// Scoped fast realtime work has the established in-process lock exception
|
|
@@ -776,6 +786,8 @@ export class CooperativePassScheduler {
|
|
|
776
786
|
this.clearAdmission(entry);
|
|
777
787
|
this.realtimeOccupants.add(entry);
|
|
778
788
|
this.handoffAdmitted = true;
|
|
789
|
+
if (this.capYieldDepth > 0)
|
|
790
|
+
this.capYieldAdmitted = true;
|
|
779
791
|
let running;
|
|
780
792
|
try {
|
|
781
793
|
running = this.execute(entry);
|
|
@@ -849,11 +861,44 @@ export class CooperativePassScheduler {
|
|
|
849
861
|
return true;
|
|
850
862
|
return ![...this.realtimeOccupants].some((occupant) => occupant.transferDirection === entry.transferDirection);
|
|
851
863
|
}
|
|
864
|
+
async waitForRealtimeOccupants() {
|
|
865
|
+
while (this.realtimeOccupants.size > 0) {
|
|
866
|
+
const seen = this.occupantEpoch;
|
|
867
|
+
if (this.realtimeOccupants.size === 0)
|
|
868
|
+
break;
|
|
869
|
+
await this.waitOccupantChange(seen);
|
|
870
|
+
}
|
|
871
|
+
}
|
|
872
|
+
/**
|
|
873
|
+
* A cap checkpoint is already a durable boundary. Keep the hand-off open
|
|
874
|
+
* for the whole yield, including the throttle sleep between slices, and
|
|
875
|
+
* do not bill realtime work admitted there to the chore.
|
|
876
|
+
*/
|
|
877
|
+
enterCapYield() {
|
|
878
|
+
this.capYieldDepth += 1;
|
|
879
|
+
if (this.capYieldDepth !== 1)
|
|
880
|
+
return;
|
|
881
|
+
this._handoffActive = true;
|
|
882
|
+
if (this.handoffDeferredAt === null)
|
|
883
|
+
this.handoffDeferredAt = this.now();
|
|
884
|
+
this.options.caps?.suspendForHandoff();
|
|
885
|
+
}
|
|
886
|
+
async exitCapYield() {
|
|
887
|
+
this.capYieldDepth = Math.max(0, this.capYieldDepth - 1);
|
|
888
|
+
if (this.capYieldDepth > 0)
|
|
889
|
+
return;
|
|
890
|
+
await this.waitForRealtimeOccupants();
|
|
891
|
+
this._handoffActive = false;
|
|
892
|
+
this.handoffDeferredAt = null;
|
|
893
|
+
this.handoffBacklog = null;
|
|
894
|
+
this.options.caps?.resumeAfterHandoff();
|
|
895
|
+
}
|
|
852
896
|
async drainRealtime(entry) {
|
|
897
|
+
const realtimePending = this.pending.some((pending) => pending.workClass === "realtime");
|
|
853
898
|
if (this.stopped ||
|
|
854
899
|
entry.workClass !== "chore" ||
|
|
855
900
|
this.active !== entry ||
|
|
856
|
-
!this.
|
|
901
|
+
(!realtimePending && this.realtimeOccupants.size === 0)) {
|
|
857
902
|
return false;
|
|
858
903
|
}
|
|
859
904
|
// `entry` is suspended at a caller-declared durable boundary. The burst
|
|
@@ -864,7 +909,12 @@ export class CooperativePassScheduler {
|
|
|
864
909
|
this._handoffActive = true;
|
|
865
910
|
this.handoffDeferredAt = this.now();
|
|
866
911
|
this.handoffAdmitted = false;
|
|
867
|
-
|
|
912
|
+
// A cap-sleep slice can re-enter while a backlog pass admitted earlier in
|
|
913
|
+
// the same yield is still running. Keep its single-writer reservation
|
|
914
|
+
// until that pass settles; startRealtimeOccupant clears it then.
|
|
915
|
+
if (this.handoffBacklog !== null && !this.realtimeOccupants.has(this.handoffBacklog)) {
|
|
916
|
+
this.handoffBacklog = null;
|
|
917
|
+
}
|
|
868
918
|
this.options.caps?.suspendForHandoff();
|
|
869
919
|
try {
|
|
870
920
|
this.admitHandoffBacklog();
|
|
@@ -890,14 +940,22 @@ export class CooperativePassScheduler {
|
|
|
890
940
|
}
|
|
891
941
|
}
|
|
892
942
|
finally {
|
|
893
|
-
this._handoffActive = false;
|
|
894
|
-
this.handoffDeferredAt = null;
|
|
895
943
|
this.handoffBacklog = null;
|
|
944
|
+
if (this.capYieldDepth > 0) {
|
|
945
|
+
this._handoffActive = true;
|
|
946
|
+
if (this.handoffDeferredAt === null)
|
|
947
|
+
this.handoffDeferredAt = this.now();
|
|
948
|
+
}
|
|
949
|
+
else {
|
|
950
|
+
this._handoffActive = false;
|
|
951
|
+
this.handoffDeferredAt = null;
|
|
952
|
+
}
|
|
896
953
|
if (!this.stopped) {
|
|
897
954
|
this.active = entry;
|
|
898
955
|
this.armQueuedRealtime();
|
|
899
956
|
}
|
|
900
|
-
this.
|
|
957
|
+
if (this.capYieldDepth === 0)
|
|
958
|
+
this.options.caps?.resumeAfterHandoff();
|
|
901
959
|
}
|
|
902
960
|
return this.handoffAdmitted;
|
|
903
961
|
}
|
|
@@ -908,7 +966,18 @@ export class CooperativePassScheduler {
|
|
|
908
966
|
const handedOff = await this.drainRealtime(entry);
|
|
909
967
|
const caps = this.options.caps;
|
|
910
968
|
if (caps && entry.resourceCap) {
|
|
911
|
-
|
|
969
|
+
if (this.capYieldDepth === 0)
|
|
970
|
+
this.capYieldAdmitted = false;
|
|
971
|
+
this.enterCapYield();
|
|
972
|
+
try {
|
|
973
|
+
await caps.applyAtCheckpoint(() => this.drainRealtime(entry));
|
|
974
|
+
}
|
|
975
|
+
finally {
|
|
976
|
+
await this.exitCapYield();
|
|
977
|
+
}
|
|
978
|
+
// Work admitted during the throttle sleep mutated durable state too, so
|
|
979
|
+
// callers must overlay journal deltas exactly as for the first drain.
|
|
980
|
+
return handedOff || this.capYieldAdmitted;
|
|
912
981
|
}
|
|
913
982
|
return handedOff;
|
|
914
983
|
}
|