1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | import type { QueueChildMessage, TaskQueue } from './types';
|
8 | export declare type ComputeTaskPriorityCallback = (method: string, ...args: Array<unknown>) => number;
|
9 | declare type QueueItem = {
|
10 | task: QueueChildMessage;
|
11 | priority: number;
|
12 | };
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | export default class PriorityQueue implements TaskQueue {
|
23 | private _computePriority;
|
24 | private _queue;
|
25 | private _sharedQueue;
|
26 | constructor(_computePriority: ComputeTaskPriorityCallback);
|
27 | enqueue(task: QueueChildMessage, workerId?: number): void;
|
28 | _enqueue(task: QueueChildMessage, queue: MinHeap<QueueItem>): void;
|
29 | dequeue(workerId: number): QueueChildMessage | null;
|
30 | _getWorkerQueue(workerId: number): MinHeap<QueueItem>;
|
31 | }
|
32 | declare type HeapItem = {
|
33 | priority: number;
|
34 | };
|
35 | declare class MinHeap<TItem extends HeapItem> {
|
36 | private _heap;
|
37 | peek(): TItem | null;
|
38 | add(item: TItem): void;
|
39 | poll(): TItem | null;
|
40 | }
|
41 | export {};
|