From 767f1a9d671d426b0c5b32626900ab26d93f13d4 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 13 Jan 2023 16:34:07 -0300 Subject: remove activeLongPoll on error and prevent activeLongPoll skip if forced --- packages/taler-wallet-core/src/operations/withdraw.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'packages/taler-wallet-core/src/operations/withdraw.ts') diff --git a/packages/taler-wallet-core/src/operations/withdraw.ts b/packages/taler-wallet-core/src/operations/withdraw.ts index 368cf3510..a1a39bf32 100644 --- a/packages/taler-wallet-core/src/operations/withdraw.ts +++ b/packages/taler-wallet-core/src/operations/withdraw.ts @@ -982,7 +982,9 @@ enum BankStatusResultCode { export async function processWithdrawalGroup( ws: InternalWalletState, withdrawalGroupId: string, - options: object = {}, + options: { + forceNow?: boolean; + } = {}, ): Promise { logger.trace("processing withdrawal group", withdrawalGroupId); const withdrawalGroup = await ws.db @@ -998,7 +1000,7 @@ export async function processWithdrawalGroup( const retryTag = RetryTags.forWithdrawal(withdrawalGroup); // We're already running! - if (ws.activeLongpoll[retryTag]) { + if (ws.activeLongpoll[retryTag] && !options.forceNow) { logger.info("withdrawal group already in long-polling, returning!"); return { type: OperationAttemptResultType.Longpoll, @@ -1035,8 +1037,9 @@ export async function processWithdrawalGroup( getErrorDetailFromException(e), ); return; + } finally { + delete ws.activeLongpoll[retryTag]; } - delete ws.activeLongpoll[retryTag]; if (!res.ready) { await storeOperationPending(ws, retryTag); } -- cgit v1.2.3