summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/headless
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-11-16 17:20:36 +0100
committerFlorian Dold <florian@dold.me>2021-11-16 17:20:44 +0100
commitc33ed919719845f518d6491ef37df6ae16820dd0 (patch)
treec264e72b84088f45bf62a212159fc953d2757024 /packages/taler-wallet-core/src/headless
parent1d4815c66c395f4fcc86c30e20f3d005e3cb9ff5 (diff)
downloadwallet-core-c33ed919719845f518d6491ef37df6ae16820dd0.tar.gz
wallet-core-c33ed919719845f518d6491ef37df6ae16820dd0.tar.bz2
wallet-core-c33ed919719845f518d6491ef37df6ae16820dd0.zip
wallet: experiment with C-based crypto worker for some primitives
Diffstat (limited to 'packages/taler-wallet-core/src/headless')
-rw-r--r--packages/taler-wallet-core/src/headless/helpers.ts26
1 files changed, 15 insertions, 11 deletions
diff --git a/packages/taler-wallet-core/src/headless/helpers.ts b/packages/taler-wallet-core/src/headless/helpers.ts
index f2285e149..191c48441 100644
--- a/packages/taler-wallet-core/src/headless/helpers.ts
+++ b/packages/taler-wallet-core/src/headless/helpers.ts
@@ -142,19 +142,23 @@ export async function getDefaultNodeWallet(
const myDb = await openTalerDatabase(myIdbFactory, myVersionChange);
let workerFactory;
- try {
- // Try if we have worker threads available, fails in older node versions.
- const _r = "require";
- const worker_threads = module[_r]("worker_threads");
- // require("worker_threads");
- workerFactory = new NodeThreadCryptoWorkerFactory();
- } catch (e) {
- logger.warn(
- "worker threads not available, falling back to synchronous workers",
- );
+ if (process.env["TALER_WALLET_SYNC_CRYPTO"]) {
+ logger.info("using synchronous crypto worker");
workerFactory = new SynchronousCryptoWorkerFactory();
+ } else {
+ try {
+ // Try if we have worker threads available, fails in older node versions.
+ const _r = "require";
+ const worker_threads = module[_r]("worker_threads");
+ // require("worker_threads");
+ workerFactory = new NodeThreadCryptoWorkerFactory();
+ } catch (e) {
+ logger.warn(
+ "worker threads not available, falling back to synchronous workers",
+ );
+ workerFactory = new SynchronousCryptoWorkerFactory();
+ }
}
-
const w = await Wallet.create(myDb, myHttpLib, workerFactory);
if (args.notifyHandler) {