@@ -112,6 +112,7 @@ const kHandle = Symbol('kHandle');
|
112 | 112 | const kFd = Symbol('kFd'); |
113 | 113 | const kRefs = Symbol('kRefs'); |
114 | 114 | const kClosePromise = Symbol('kClosePromise'); |
| 115 | +const kCloseReason = Symbol('kCloseReason'); |
115 | 116 | const kCloseResolve = Symbol('kCloseResolve'); |
116 | 117 | const kCloseReject = Symbol('kCloseReject'); |
117 | 118 | const kRef = Symbol('kRef'); |
@@ -390,6 +391,7 @@ class FileHandle extends EventEmitter {
|
390 | 391 | |
391 | 392 | const handle = this[kHandle]; |
392 | 393 | this[kFd] = -1; |
| 394 | +this[kCloseReason] = 'The FileHandle has been transferred'; |
393 | 395 | this[kHandle] = null; |
394 | 396 | this[kRefs] = 0; |
395 | 397 | |
@@ -456,7 +458,7 @@ async function fsCall(fn, handle, ...args) {
|
456 | 458 | |
457 | 459 | if (handle.fd === -1) { |
458 | 460 | // eslint-disable-next-line no-restricted-syntax |
459 | | -const err = new Error('file closed'); |
| 461 | +const err = new Error(handle[kCloseReason] ?? 'file closed'); |
460 | 462 | err.code = 'EBADF'; |
461 | 463 | err.syscall = fn.name; |
462 | 464 | throw err; |
|