asyncfunctionsignOne(index) { // Cada chamada obtém seu próprio handle — 1 sessão emprestada pela // vida inteira do handle (ADR-0006). Paralelismo vem de abrir vários // handles, não de concorrência interna a um único handle. consthsmHandle = awaithsm.connectPooled(options); try { constkeyName = `pool_example_key_${index}_${Date.now()}`; constcreated = awaithsmHandle.key.create( keyName, hsm.enums.SYMMETRICAL_KEYS.ALG_AES_128, false, true ); console.log(`Handle ${index}: key created =`, created); } catch (err) { // A partir daqui este handle está morto (ADR-0020) — qualquer nova // chamada de negócio nele rejeitaria com SessionInvalidatedError. console.error(`Handle ${index}: business call failed`, err.message); } finally { // Idempotente mesmo se a sessão já foi descartada por erro. awaithsmHandle.disconnect(); } }