diff options
author | Florian Dold <florian@dold.me> | 2022-03-28 23:59:16 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2022-03-28 23:59:16 +0200 |
commit | f5d194dfc61ae0d358a27b994861dc20b83cf98e (patch) | |
tree | 8bdb1509be601294329f9a6739823cc798ad9de1 /packages/taler-wallet-core/src/wallet.ts | |
parent | 80e43db2cac84e588c2ef3889e8d90b76bd53714 (diff) | |
download | wallet-core-f5d194dfc61ae0d358a27b994861dc20b83cf98e.tar.xz |
wallet: cancellation for deposit
Diffstat (limited to 'packages/taler-wallet-core/src/wallet.ts')
-rw-r--r-- | packages/taler-wallet-core/src/wallet.ts | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/packages/taler-wallet-core/src/wallet.ts b/packages/taler-wallet-core/src/wallet.ts index 943051153..abd11faab 100644 --- a/packages/taler-wallet-core/src/wallet.ts +++ b/packages/taler-wallet-core/src/wallet.ts @@ -78,6 +78,7 @@ import { URL, WalletNotification, Duration, + CancellationToken, } from "@gnu-taler/taler-util"; import { timeStamp } from "console"; import { @@ -271,9 +272,19 @@ async function processOnePendingOperation( case PendingTaskType.ExchangeCheckRefresh: await autoRefresh(ws, pending.exchangeBaseUrl); break; - case PendingTaskType.Deposit: - await processDepositGroup(ws, pending.depositGroupId); + case PendingTaskType.Deposit: { + const cts = CancellationToken.create(); + ws.taskCancellationSourceForDeposit = cts; + try { + await processDepositGroup(ws, pending.depositGroupId, { + cancellationToken: cts.token, + }); + } finally { + cts.dispose(); + delete ws.taskCancellationSourceForDeposit; + } break; + } case PendingTaskType.Backup: await processBackupForProvider(ws, pending.backupProviderBaseUrl); break; |