summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/internal/fs/rimraf.js8
-rw-r--r--lib/internal/fs/utils.js3
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;