fix(pi): strengthen final release proof

This commit is contained in:
2026-08-24 15:47:57 +08:00
parent c7e777246e
commit df1151b5eb
19 changed files with 1120 additions and 149 deletions

View File

@@ -98,6 +98,9 @@ class FifoSemaphore {
}
}
get activeCount(): number { return this.active; }
get waitingCount(): number { return this.waiters.length; }
acquire(signal: AbortSignal): Promise<() => void> {
if (signal.aborted) return Promise.reject(new PiSubagentChildError('SUBAGENT_ABORTED'));
if (this.active < this.maximum) return Promise.resolve(this.issuePermit());
@@ -292,6 +295,20 @@ export class PiSubagentScheduler {
}
}
getDiagnostics(): {
activeChildPermits: number;
waitingChildPermits: number;
activeDispatches: number;
activeParents: number;
} {
return {
activeChildPermits: this.childPermits.activeCount,
waitingChildPermits: this.childPermits.waitingCount,
activeDispatches: this.dispatches.size,
activeParents: this.parentDispatches.size,
};
}
async close(): Promise<void> {
if (this.closing) {
await Promise.allSettled([...this.dispatches.values()].map((record) => record.flight));