JezK
Edit File: mutex.js.map
{"version":3,"file":"mutex.js","names":["lockPromises","Map","key","unlockNext","willLock","Promise","resolve","lockPromise","get","willUnlock","then","set"],"sourceRoot":"../../src","sources":["util/mutex.js"],"sourcesContent":["/* @flow */\n\nconst lockPromises: Map<any, Promise<*>> = new Map();\n\n/**\n * Acquires a mutex lock over the given key. If the lock can't be acquired, it waits until it's available.\n * @param key Key to get the lock for.\n * @return {Promise.<Function>} A Promise that resolves when the lock is acquired, with the function that\n * must be called to release the lock.\n */\nexport default (key: any): Promise<Function> => {\n let unlockNext;\n const willLock = new Promise(resolve => (unlockNext = resolve));\n const lockPromise = lockPromises.get(key) || Promise.resolve();\n const willUnlock = lockPromise.then(() => unlockNext);\n lockPromises.set(key, lockPromise.then(() => willLock));\n return willUnlock;\n};\n"],"mappings":";;;;;;AAEA,IAAMA,YAAkC,GAAG,IAAIC,GAAG,EAAE;;AAEpD;AACA;AACA;AACA;AACA;AACA;AALA,eAMe,kBAACC,GAAQ,EAAwB;EAC9C,IAAIC,UAAU;EACd,IAAMC,QAAQ,GAAG,IAAIC,OAAO,CAAC,UAAAC,OAAO;IAAA,OAAKH,UAAU,GAAGG,OAAO;EAAA,CAAC,CAAC;EAC/D,IAAMC,WAAW,GAAGP,YAAY,CAACQ,GAAG,CAACN,GAAG,CAAC,IAAIG,OAAO,CAACC,OAAO,EAAE;EAC9D,IAAMG,UAAU,GAAGF,WAAW,CAACG,IAAI,CAAC;IAAA,OAAMP,UAAU;EAAA,EAAC;EACrDH,YAAY,CAACW,GAAG,CAACT,GAAG,EAAEK,WAAW,CAACG,IAAI,CAAC;IAAA,OAAMN,QAAQ;EAAA,EAAC,CAAC;EACvD,OAAOK,UAAU;AACnB,CAAC;AAAA"}