diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/internal/fs/rimraf.js | 8 | ||||
-rw-r--r-- | lib/internal/fs/utils.js | 3 |
2 files changed, 2 insertions, 9 deletions
diff --git a/lib/internal/fs/rimraf.js b/lib/internal/fs/rimraf.js index 17e4fe5c9d..9d5fcad49c 100644 --- a/lib/internal/fs/rimraf.js +++ b/lib/internal/fs/rimraf.js @@ -22,26 +22,22 @@ const { const { join } = require('path'); const { setTimeout } = require('timers'); const notEmptyErrorCodes = new Set(['ENOTEMPTY', 'EEXIST', 'EPERM']); +const retryErrorCodes = new Set(['EBUSY', 'EMFILE', 'ENOTEMPTY', 'EPERM']); const isWindows = process.platform === 'win32'; const epermHandler = isWindows ? fixWinEPERM : _rmdir; const epermHandlerSync = isWindows ? fixWinEPERMSync : _rmdirSync; function rimraf(path, options, callback) { - let timeout = 0; // For EMFILE handling. let retries = 0; _rimraf(path, options, function CB(err) { if (err) { - if ((err.code === 'EBUSY' || err.code === 'ENOTEMPTY' || - err.code === 'EPERM') && retries < options.maxRetries) { + if (retryErrorCodes.has(err.code) && retries < options.maxRetries) { retries++; return setTimeout(_rimraf, retries * 100, path, options, CB); } - if (err.code === 'EMFILE' && timeout < options.emfileWait) - return setTimeout(_rimraf, timeout++, path, options, CB); - // The file is already gone. if (err.code === 'ENOENT') err = null; diff --git a/lib/internal/fs/utils.js b/lib/internal/fs/utils.js index 5274d74cdb..f71a21b7d4 100644 --- a/lib/internal/fs/utils.js +++ b/lib/internal/fs/utils.js @@ -28,7 +28,6 @@ const { const { once } = require('internal/util'); const { toPathIfFileURL } = require('internal/url'); const { - validateInt32, validateUint32 } = require('internal/validators'); const pathModule = require('path'); @@ -566,7 +565,6 @@ function warnOnNonPortableTemplate(template) { } const defaultRmdirOptions = { - emfileWait: 1000, maxRetries: 0, recursive: false, }; @@ -582,7 +580,6 @@ const validateRmdirOptions = hideStackFrames((options) => { if (typeof options.recursive !== 'boolean') throw new ERR_INVALID_ARG_TYPE('recursive', 'boolean', options.recursive); - validateInt32(options.emfileWait, 'emfileWait', 0); validateUint32(options.maxRetries, 'maxRetries'); return options; |