Enable processing plugins as soon as there is one available worker

This commit is contained in:
Tyler Hallada 2022-03-19 01:20:24 -04:00
parent 38d3536340
commit fd7d22e16a
3 changed files with 4 additions and 4 deletions

View File

@ -30,7 +30,7 @@ const DataDirPicker: React.FC<Props> = () => {
const onDataDirButtonClick = async (event: {
target: { files: FileList | null };
}) => {
if (!workerPool) {
if (!workerPool || workerPool.availableWorkers.length === 0) {
return alert("Workers not loaded yet");
}
const files = event.target.files ?? [];

View File

@ -58,7 +58,7 @@ export const DropZone: React.FC<Props> = ({ children, workerPool }) => {
const pluginFiles = await Promise.all(
plugins.map(async (plugin) => plugin.getFile())
);
if (workerPool) {
if (workerPool && workerPool.availableWorkers.length > 0) {
parsePluginFiles(pluginFiles, workerPool);
} else {
alert("Workers not loaded yet");
@ -117,7 +117,7 @@ export const DropZone: React.FC<Props> = ({ children, workerPool }) => {
)
)
);
if (workerPool) {
if (workerPool && workerPool.availableWorkers.length > 0) {
parsePluginFiles(pluginFiles, workerPool);
} else {
alert("Workers not loaded yet");

View File

@ -26,7 +26,7 @@ export class WorkerPool {
public async init(count: number = window.navigator.hardwareConcurrency ?? 8): Promise<WorkerPool> {
this.availableWorkers = [];
for (let i = 0; i < count; i++) {
this.availableWorkers.push(await this.createWorker());
this.createWorker().then(worker => this.availableWorkers.push(worker));
}
return this;
}