MCPcopy
hub / github.com/codeaashu/claude-code / dispatch

Method dispatch

web/lib/performance/worker-pool.ts:58–85  ·  view source on GitHub ↗
(slot: WorkerSlot, task: WorkerTask<T>)

Source from the content-addressed store, hash-verified

56 }
57
58 private dispatch(slot: WorkerSlot, task: WorkerTask<T>): void {
59 slot.busy = true;
60
61 const handleMessage = (e: MessageEvent) => {
62 slot.worker.removeEventListener("message", handleMessage);
63 slot.worker.removeEventListener("error", handleError);
64 slot.busy = false;
65 task.resolve(e.data as T);
66 this.dequeue();
67 };
68
69 const handleError = (e: ErrorEvent) => {
70 slot.worker.removeEventListener("message", handleMessage);
71 slot.worker.removeEventListener("error", handleError);
72 slot.busy = false;
73 task.reject(new Error(e.message));
74 this.dequeue();
75 };
76
77 slot.worker.addEventListener("message", handleMessage);
78 slot.worker.addEventListener("error", handleError);
79
80 if (task.transferables?.length) {
81 slot.worker.postMessage(task.payload, task.transferables);
82 } else {
83 slot.worker.postMessage(task.payload);
84 }
85 }
86
87 private dequeue(): void {
88 if (!this.queue.length) return;

Callers 2

runMethod · 0.95
dequeueMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected