From 3277caa38a693e7faae588133d2604cd7072295a Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sat, 13 Jan 2024 14:24:28 +0100 Subject: wallet-core: test request to diagnose sleep/wakeup issue on iOS --- packages/taler-wallet-core/src/wallet.ts | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'packages/taler-wallet-core/src/wallet.ts') diff --git a/packages/taler-wallet-core/src/wallet.ts b/packages/taler-wallet-core/src/wallet.ts index da34ff37f..8d5028d47 100644 --- a/packages/taler-wallet-core/src/wallet.ts +++ b/packages/taler-wallet-core/src/wallet.ts @@ -298,7 +298,7 @@ import { GetReadOnlyAccess, GetReadWriteAccess, } from "./util/query.js"; -import { TimerAPI, TimerGroup } from "./util/timer.js"; +import { TimerAPI, TimerGroup, timer } from "./util/timer.js"; import { WALLET_BANK_CONVERSION_API_PROTOCOL_VERSION, WALLET_BANK_INTEGRATION_PROTOCOL_VERSION, @@ -1393,6 +1393,25 @@ async function dispatchRequestInternal( ws.workAvailable.trigger(); return {}; } + case WalletApiOperation.TestingInfiniteTransactionLoop: { + const myDelayMs = (payload as any).delayMs ?? 5; + let loopCount = 0; + while (true) { + logger.info(`looping test write tx, iteration ${loopCount}`); + await ws.db.runReadWriteTx(["config"], async (tx) => { + await tx.config.put({ + key: ConfigRecordKey.TestLoopTx, + value: loopCount, + }); + }); + if (myDelayMs != 0) { + await new Promise((resolve, reject) => { + setTimeout(() => resolve(), myDelayMs); + }); + } + loopCount = (loopCount + 1) % (Number.MAX_SAFE_INTEGER - 1); + } + } // default: // assertUnreachable(operation); } -- cgit v1.2.3