mirror of
https://github.com/nodejs/node.git
synced 2026-10-14 10:26:26 -04:00
fs: propagate abortsignal reason in new AbortSignal constructors
Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: https://github.com/nodejs/node/pull/41008 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
This commit is contained in:
4 files changed
+8
-7
No files matched your search
@@ -350,7 +350,7 @@ function readFileAfterStat(err, stats) {
|
||||
|
||||
function checkAborted(signal, callback) {
|
||||
if (signal?.aborted) {
|
||||
callback(new AbortError());
|
||||
callback(new AbortError(undefined, { cause: signal?.reason }));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -2050,7 +2050,7 @@ function lutimesSync(path, atime, mtime) {
|
||||
|
||||
function writeAll(fd, isUserFd, buffer, offset, length, signal, callback) {
|
||||
if (signal?.aborted) {
|
||||
const abortError = new AbortError();
|
||||
const abortError = new AbortError(undefined, { cause: signal?.reason });
|
||||
if (isUserFd) {
|
||||
callback(abortError);
|
||||
} else {
|
||||
|
||||
@@ -370,7 +370,7 @@ async function fsCall(fn, handle, ...args) {
|
||||
|
||||
function checkAborted(signal) {
|
||||
if (signal?.aborted)
|
||||
throw new AbortError();
|
||||
throw new AbortError(undefined, { cause: signal?.reason });
|
||||
}
|
||||
|
||||
async function writeFileHandle(filehandle, data, signal, encoding) {
|
||||
|
||||
@@ -88,7 +88,8 @@ class ReadFileContext {
|
||||
let length;
|
||||
|
||||
if (this.signal?.aborted) {
|
||||
return this.close(new AbortError());
|
||||
return this.close(
|
||||
new AbortError(undefined, { cause: this.signal?.reason }));
|
||||
}
|
||||
if (this.size === 0) {
|
||||
buffer = Buffer.allocUnsafeSlow(kReadFileUnknownBufferLength);
|
||||
|
||||
@@ -316,13 +316,13 @@ async function* watch(filename, options = {}) {
|
||||
}
|
||||
|
||||
if (signal?.aborted)
|
||||
throw new AbortError();
|
||||
throw new AbortError(undefined, { cause: signal?.reason });
|
||||
|
||||
const handle = new FSEvent();
|
||||
let { promise, resolve, reject } = createDeferredPromise();
|
||||
const oncancel = () => {
|
||||
handle.close();
|
||||
reject(new AbortError());
|
||||
reject(new AbortError(undefined, { cause: signal?.reason }));
|
||||
};
|
||||
|
||||
try {
|
||||
@@ -361,7 +361,7 @@ async function* watch(filename, options = {}) {
|
||||
yield await promise;
|
||||
({ promise, resolve, reject } = createDeferredPromise());
|
||||
}
|
||||
throw new AbortError();
|
||||
throw new AbortError(undefined, { cause: signal?.reason });
|
||||
} finally {
|
||||
handle.close();
|
||||
signal?.removeEventListener('abort', oncancel);
|
||||
|
||||
Reference in new issue
Block a user