Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

239
Views
El tiempo de espera de mutex en javscript no muestra en qué línea del código se produce el error

Uso Node v16.14.2 y ejecuto este programa en el símbolo del sistema.

Tengo un pequeño problema con el uso de Mutex en javascript. El Mutex en sí funciona, pero a veces lleva mucho tiempo adquirir el Mutex y me encuentro con el error:

 C:\myproject\node_modules\async-mutex\lib\errors.js:4 exports.E_TIMEOUT = new Error('timeout while waiting for mutex to become available'); ^ Error: timeout while waiting for mutex to become available at Object.<anonymous> (C:\myproject\node_modules\async-mutex\lib\errors.js:4:21) at Module._compile (node:internal/modules/cjs/loader:1103:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Module.require (node:internal/modules/cjs/loader:1005:19) at require (node:internal/modules/cjs/helpers:102:18) at Object.<anonymous> (C:\myproject\node_modules\async-mutex\lib\Semaphore.js:4:16) at Module._compile (node:internal/modules/cjs/loader:1103:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10)

Tengo 2 cosas que me pregunto:

  1. El mensaje de error no muestra en qué línea ocurre este error en mi código, lo cual es un problema porque tengo quizás 20 mutex diferentes y no sé cuál tiene el problema. ¿Cómo saber en qué línea de mi código se produce este error? (Todos los demás tipos de errores que no están relacionados con el mutex muestran qué línea se menciona el error)

  2. ¿Hay algún problema para permitir que el código adquiera el mutex de todos modos, incluso si no está disponible (lo que probablemente no sea una buena idea, pero aún así?)

Código de prueba para reproducir el error. He anidado el mismo mutex solo para ilustrar el error.

 var Mutex = require('async-mutex').Mutex; var withTimeout = require('async-mutex').withTimeout; const mutexWithTimeout = withTimeout(new Mutex(), 5000); //5 second timeout _testfunction(); async function _testfunction() { console.log("starting..."); await mutexWithTimeout.runExclusive(async () => { console.log("I am inside the mutex now..."); await mutexWithTimeout.runExclusive(async () => { console.log("Timeout will happen here because I am nested just to reproduce the error"); }); }); }

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!