diff --git a/src/browser/cdp/selectivity/hash-writer.ts b/src/browser/cdp/selectivity/hash-writer.ts index 0a4b3ef25..f55288633 100644 --- a/src/browser/cdp/selectivity/hash-writer.ts +++ b/src/browser/cdp/selectivity/hash-writer.ts @@ -1,6 +1,5 @@ import { memoize } from "lodash"; import path from "node:path"; -import lockfile from "proper-lockfile"; import { HashProvider } from "./hash-provider"; import { getSelectivityHashesPath, readHashFileContents, shallowSortObject } from "./utils"; import { writeJsonWithCompression } from "./json-utils"; @@ -138,44 +137,28 @@ export class HashWriter { ...Object.values(this._stagedPatternHashes), ]); - const releaseLock = await lockfile.lock(this._selectivityHashesPath, { - stale: 5000, - update: 1000, - retries: { minTimeout: 100, maxTimeout: 1000, retries: 15 }, - realpath: false, - }); - - try { - const existingHashesContent = await readHashFileContents(this._selectivityHashesPath, this._compresion); - - const [updatedModules, updatedFiles, updatedPatterns] = await Promise.all([ - filterMatchingHashes(stagedModuleNames, this._stagedModuleHashes, existingHashesContent.modules), - filterMatchingHashes(stagedFileNames, this._stagedFileHashes, existingHashesContent.files), - filterMatchingHashes(stagedPatternNames, this._stagedPatternHashes, existingHashesContent.patterns), - ]); - - if (!updatedFiles.length && !updatedModules.length && !updatedPatterns.length) { - await releaseLock(); - return; - } + const existingHashesContent = await readHashFileContents(this._selectivityHashesPath, this._compresion); - await Promise.all([ - writeTo(updatedModules, this._stagedModuleHashes, existingHashesContent.modules), - writeTo(updatedFiles, this._stagedFileHashes, existingHashesContent.files), - writeTo(updatedPatterns, this._stagedPatternHashes, existingHashesContent.patterns), - ]); + const [updatedModules, updatedFiles, updatedPatterns] = await Promise.all([ + filterMatchingHashes(stagedModuleNames, this._stagedModuleHashes, existingHashesContent.modules), + filterMatchingHashes(stagedFileNames, this._stagedFileHashes, existingHashesContent.files), + filterMatchingHashes(stagedPatternNames, this._stagedPatternHashes, existingHashesContent.patterns), + ]); - await writeJsonWithCompression(this._selectivityHashesPath, existingHashesContent, this._compresion); + if (!updatedFiles.length && !updatedModules.length && !updatedPatterns.length) { + return; + } - await releaseLock(); + await Promise.all([ + writeTo(updatedModules, this._stagedModuleHashes, existingHashesContent.modules), + writeTo(updatedFiles, this._stagedFileHashes, existingHashesContent.files), + writeTo(updatedPatterns, this._stagedPatternHashes, existingHashesContent.patterns), + ]); - markAsCommited(updatedModules, this._stagedModuleHashes); - markAsCommited(updatedFiles, this._stagedFileHashes); - } catch (err) { - await releaseLock(); + await writeJsonWithCompression(this._selectivityHashesPath, existingHashesContent, this._compresion); - throw err; - } + markAsCommited(updatedModules, this._stagedModuleHashes); + markAsCommited(updatedFiles, this._stagedFileHashes); } }