X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Futils%2FAsyncLock.ts;h=9c0584565e3ecb80897b2ad32418a1afdb0cc888;hb=d929adcc32a8cc79f0c7182d16f70367b001d28c;hp=f00ee5681b7b0cf760d867458fa51191df3269b9;hpb=4f9327bf63123fa94e86b027ad1ab9b0a22c3500;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/AsyncLock.ts b/src/utils/AsyncLock.ts index f00ee568..9c058456 100644 --- a/src/utils/AsyncLock.ts +++ b/src/utils/AsyncLock.ts @@ -1,6 +1,6 @@ // Partial Copyright Jerome Benoit. 2021-2023. All Rights Reserved. -import { Queue } from './Queue'; +import Queue from 'mnemonist/queue.js'; export enum AsyncLockType { configuration = 'configuration', @@ -25,7 +25,7 @@ export class AsyncLock { asyncLock.acquired = true; return; } - return new Promise((resolve) => { + return new Promise((resolve) => { asyncLock.resolveQueue.enqueue(resolve); }); } @@ -36,8 +36,8 @@ export class AsyncLock { asyncLock.acquired = false; return; } - const queuedResolve = asyncLock.resolveQueue.dequeue(); - return new Promise((resolve) => { + const queuedResolve = asyncLock.resolveQueue.dequeue()!; + return new Promise((resolve) => { queuedResolve(); resolve(); }); @@ -47,6 +47,6 @@ export class AsyncLock { if (!AsyncLock.asyncLocks.has(type)) { AsyncLock.asyncLocks.set(type, new AsyncLock()); } - return AsyncLock.asyncLocks.get(type); + return AsyncLock.asyncLocks.get(type)!; } }