MCPcopy
hub / github.com/coder/mux / countActiveWorkspaceTurns

Method countActiveWorkspaceTurns

src/node/services/taskService.ts:6648–6682  ·  view source on GitHub ↗
(
    records?: readonly WorkspaceTurnTaskHandleRecord[]
  )

Source from the content-addressed store, hash-verified

6646 }
6647
6648 private async countActiveWorkspaceTurns(
6649 records?: readonly WorkspaceTurnTaskHandleRecord[]
6650 ): Promise<number> {
6651 const candidateWorkspaceTurns =
6652 records ??
6653 (await this.taskHandleStore.listAllWorkspaceTurns({
6654 statuses: ["queued", "starting", "running"],
6655 }));
6656 let count = 0;
6657 const countedWorkspaceIds = new Set<string>();
6658 const queuedRecords: WorkspaceTurnTaskHandleRecord[] = [];
6659 for (const record of candidateWorkspaceTurns) {
6660 if (!this.isActiveWorkspaceTurn(record)) {
6661 continue;
6662 }
6663 if (!(await this.isLiveWorkspaceTurn(record))) {
6664 await this.settleStaleWorkspaceTurn(record);
6665 continue;
6666 }
6667 if (record.status === "queued") {
6668 queuedRecords.push(record);
6669 continue;
6670 }
6671 count += 1;
6672 countedWorkspaceIds.add(record.workspaceId);
6673 }
6674 for (const record of queuedRecords) {
6675 if (countedWorkspaceIds.has(record.workspaceId)) {
6676 continue;
6677 }
6678 count += 1;
6679 countedWorkspaceIds.add(record.workspaceId);
6680 }
6681 return count;
6682 }
6683
6684 private async listActiveWorkspaceTurnTaskIdsForOwner(
6685 ownerWorkspaceId: string

Callers 5

createManyMethod · 0.95
ensureParallelSlotMethod · 0.95
createMethod · 0.95

Calls 7

isActiveWorkspaceTurnMethod · 0.95
isLiveWorkspaceTurnMethod · 0.95
listAllWorkspaceTurnsMethod · 0.80
addMethod · 0.80
pushMethod · 0.65
hasMethod · 0.45

Tested by

no test coverage detected