Spaces:
Build error
Build error
/** | |
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. | |
* | |
* This source code is licensed under the MIT license found in the | |
* LICENSE file in the root directory of this source tree. | |
*/ | |
import type { QueueChildMessage, TaskQueue } from './types'; | |
export declare type ComputeTaskPriorityCallback = (method: string, ...args: Array<unknown>) => number; | |
declare type QueueItem = { | |
task: QueueChildMessage; | |
priority: number; | |
}; | |
/** | |
* Priority queue that processes tasks in natural ordering (lower priority first) | |
* accoridng to the priority computed by the function passed in the constructor. | |
* | |
* FIFO ordering isn't guaranteed for tasks with the same priority. | |
* | |
* Worker specific tasks with the same priority as a non-worker specific task | |
* are always processed first. | |
*/ | |
export default class PriorityQueue implements TaskQueue { | |
private _computePriority; | |
private _queue; | |
private _sharedQueue; | |
constructor(_computePriority: ComputeTaskPriorityCallback); | |
enqueue(task: QueueChildMessage, workerId?: number): void; | |
_enqueue(task: QueueChildMessage, queue: MinHeap<QueueItem>): void; | |
dequeue(workerId: number): QueueChildMessage | null; | |
_getWorkerQueue(workerId: number): MinHeap<QueueItem>; | |
} | |
declare type HeapItem = { | |
priority: number; | |
}; | |
declare class MinHeap<TItem extends HeapItem> { | |
private _heap; | |
peek(): TItem | null; | |
add(item: TItem): void; | |
poll(): TItem | null; | |
} | |
export {}; | |