30 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /**
 | |
|  * 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;
 | |
| }
 |