You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1.0 KiB
29 lines
1.0 KiB
/** |
|
* 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 { FarmOptions, PromiseWithCustomMessage, TaskQueue } from './types'; |
|
export default class Farm { |
|
private _numOfWorkers; |
|
private _callback; |
|
private readonly _computeWorkerKey; |
|
private readonly _workerSchedulingPolicy; |
|
private readonly _cacheKeys; |
|
private readonly _locks; |
|
private _offset; |
|
private readonly _taskQueue; |
|
constructor(_numOfWorkers: number, _callback: Function, options?: { |
|
computeWorkerKey?: FarmOptions['computeWorkerKey']; |
|
workerSchedulingPolicy?: FarmOptions['workerSchedulingPolicy']; |
|
taskQueue?: TaskQueue; |
|
}); |
|
doWork(method: string, ...args: Array<unknown>): PromiseWithCustomMessage<unknown>; |
|
private _process; |
|
private _push; |
|
private _getNextWorkerOffset; |
|
private _lock; |
|
private _unlock; |
|
private _isLocked; |
|
}
|
|
|