Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import bls from "@chainsafe/bls";
import {LocalKeystoreDefinition} from "../interface.js";
import {clearKeystoreCache, loadKeystoreCache, writeKeystoreCache} from "../keystoreCache.js";
import {lockFilepath, unlockFilepath} from "../../../../util/lockfile.js";
import {defaultPoolSize} from "./poolSize.js";
import {maxPoolSize} from "./poolSize.js";
import {DecryptKeystoreWorkerAPI, KeystoreDecryptOptions} from "./types.js";

/**
Expand Down Expand Up @@ -35,8 +35,9 @@ export async function decryptKeystoreDefinitions(
}
}

const signers = new Array(keystoreDefinitions.length) as SignerLocal[];
const passwords = new Array(keystoreDefinitions.length) as string[];
const keystoreCount = keystoreDefinitions.length;
const signers = new Array<SignerLocal>(keystoreCount);
const passwords = new Array<string>(keystoreCount);
const tasks: QueuedTask<ModuleThread<DecryptKeystoreWorkerAPI>, Uint8Array>[] = [];
const errors: Error[] = [];
const pool = Pool(
Expand All @@ -45,7 +46,7 @@ export async function decryptKeystoreDefinitions(
// The number below is big enough to almost disable the timeout which helps during tests run on unpredictablely slow hosts
timeout: 5 * 60 * 1000,
}),
defaultPoolSize
Math.min(keystoreCount, maxPoolSize)
);
for (const [index, definition] of keystoreDefinitions.entries()) {
lockKeystore(definition.keystorePath, opts);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
let defaultPoolSize: number;
let maxPoolSize: number;

try {
if (typeof navigator !== "undefined") {
defaultPoolSize = navigator.hardwareConcurrency ?? 4;
maxPoolSize = navigator.hardwareConcurrency ?? 4;
} else {
// TODO change this line to use os.availableParallelism() once we upgrade to node v20
defaultPoolSize = (await import("node:os")).cpus().length;
maxPoolSize = (await import("node:os")).cpus().length;
}
} catch (e) {
defaultPoolSize = 8;
maxPoolSize = 8;
}

/**
* Cross-platform aprox number of logical cores
* Cross-platform approx number of logical cores
*/
export {defaultPoolSize};
export {maxPoolSize};