Skip to content

Commit 6eda874

Browse files
jasnelldanielleadams
authored andcommitted
fs: propagate abortsignal reason in new AbortSignal constructors
Signed-off-by: James M Snell <[email protected]> PR-URL: #41008 Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: Benjamin Gruenbaum <[email protected]>
1 parent 4b3bf7e commit 6eda874

File tree

4 files changed

+8
-7
lines changed

4 files changed

+8
-7
lines changed

lib/fs.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ function readFileAfterStat(err, stats) {
350350

351351
function checkAborted(signal, callback) {
352352
if (signal?.aborted) {
353-
callback(new AbortError());
353+
callback(new AbortError(undefined, { cause: signal?.reason }));
354354
return true;
355355
}
356356
return false;
@@ -2050,7 +2050,7 @@ function lutimesSync(path, atime, mtime) {
20502050

20512051
function writeAll(fd, isUserFd, buffer, offset, length, signal, callback) {
20522052
if (signal?.aborted) {
2053-
const abortError = new AbortError();
2053+
const abortError = new AbortError(undefined, { cause: signal?.reason });
20542054
if (isUserFd) {
20552055
callback(abortError);
20562056
} else {

lib/internal/fs/promises.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ async function fsCall(fn, handle, ...args) {
370370

371371
function checkAborted(signal) {
372372
if (signal?.aborted)
373-
throw new AbortError();
373+
throw new AbortError(undefined, { cause: signal?.reason });
374374
}
375375

376376
async function writeFileHandle(filehandle, data, signal, encoding) {

lib/internal/fs/read_file_context.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@ class ReadFileContext {
8888
let length;
8989

9090
if (this.signal?.aborted) {
91-
return this.close(new AbortError());
91+
return this.close(
92+
new AbortError(undefined, { cause: this.signal?.reason }));
9293
}
9394
if (this.size === 0) {
9495
buffer = Buffer.allocUnsafeSlow(kReadFileUnknownBufferLength);

lib/internal/fs/watchers.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -316,13 +316,13 @@ async function* watch(filename, options = {}) {
316316
}
317317

318318
if (signal?.aborted)
319-
throw new AbortError();
319+
throw new AbortError(undefined, { cause: signal?.reason });
320320

321321
const handle = new FSEvent();
322322
let { promise, resolve, reject } = createDeferredPromise();
323323
const oncancel = () => {
324324
handle.close();
325-
reject(new AbortError());
325+
reject(new AbortError(undefined, { cause: signal?.reason }));
326326
};
327327

328328
try {
@@ -361,7 +361,7 @@ async function* watch(filename, options = {}) {
361361
yield await promise;
362362
({ promise, resolve, reject } = createDeferredPromise());
363363
}
364-
throw new AbortError();
364+
throw new AbortError(undefined, { cause: signal?.reason });
365365
} finally {
366366
handle.close();
367367
signal?.removeEventListener('abort', oncancel);

0 commit comments

Comments
 (0)