Skip to content
Closed
Prev Previous commit
Next Next commit
Apply suggestions from code review
Co-authored-by: James M Snell <[email protected]>
  • Loading branch information
ronag and jasnell authored Aug 13, 2020
commit dcd5ddb5a54efddfed577a6d8f1a459f72f574ee
12 changes: 11 additions & 1 deletion lib/internal/fs/promises.js
Original file line number Diff line number Diff line change
Expand Up @@ -153,18 +153,28 @@ class FileHandle extends JSTransferable {
}

close = () => {
if (this[kFd] === -1) {
return Promise.resolve();
}

if (this[kClosePromise]) {
return this[kClosePromise];
}

this[kRefs]--;
if (this[kRefs] === 0) {
this[kFd] = -1;
this[kClosePromise] = this[kHandle].close();
this[kClosePromise] = this[kHandle].close().finally(() => {
this[kClosePromise] = undefined;
});
} else {
this[kClosePromise] = new Promise((resolve, reject) => {
this[kCloseResolve] = resolve;
this[kCloseReject] = reject;
}).finally(() => {
this[kClosePromise] = undefined;
this[kCloseReject] = undefined;
this[kCloseResolve] = undefined;
});
}

Expand Down