+
+class WorkerPool {
+ public static maxConcurrentWorkers: number;
+ private static _instance: Pool;
+
+ private constructor() { }
+
+ public static getInstance(): Pool {
+ if (!WorkerPool._instance) {
+ WorkerPool._instance = new Pool({ max: WorkerPool.maxConcurrentWorkers });
+ }
+ return WorkerPool._instance;
+ }
+
+ public static acquire(filename: string, options: WorkerOptions, callback: (error: Error | null, worker: Worker) => void): void {
+ WorkerPool.getInstance().acquire(filename, options, callback);
+ }
+}