diff options
author | cjihrig <cjihrig@gmail.com> | 2019-11-25 16:43:59 -0500 |
---|---|---|
committer | cjihrig <cjihrig@gmail.com> | 2019-11-27 18:27:11 -0500 |
commit | b7cdeb8a3a39000944106ddcd8ebcd5d1a8a5486 (patch) | |
tree | 6824d92c5d81d4987e73bac5a75d1b79cbb43eb3 /lib/internal | |
parent | 4c77a76ad91aaa7c4560c00c298bfcc74e49f573 (diff) | |
download | android-node-v8-b7cdeb8a3a39000944106ddcd8ebcd5d1a8a5486.tar.gz android-node-v8-b7cdeb8a3a39000944106ddcd8ebcd5d1a8a5486.tar.bz2 android-node-v8-b7cdeb8a3a39000944106ddcd8ebcd5d1a8a5486.zip |
fs: add retryDelay option to rimraf
This commit adds a retryDelay option to rimraf which configures
the amount of time between retry operations.
Refs: https://github.com/nodejs/node/issues/30580
PR-URL: https://github.com/nodejs/node/pull/30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'lib/internal')
-rw-r--r-- | lib/internal/fs/rimraf.js | 3 | ||||
-rw-r--r-- | lib/internal/fs/utils.js | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/lib/internal/fs/rimraf.js b/lib/internal/fs/rimraf.js index 9d5fcad49c..3212fdd539 100644 --- a/lib/internal/fs/rimraf.js +++ b/lib/internal/fs/rimraf.js @@ -35,7 +35,8 @@ function rimraf(path, options, callback) { if (err) { if (retryErrorCodes.has(err.code) && retries < options.maxRetries) { retries++; - return setTimeout(_rimraf, retries * 100, path, options, CB); + const delay = retries * options.retryDelay; + return setTimeout(_rimraf, delay, path, options, CB); } // The file is already gone. diff --git a/lib/internal/fs/utils.js b/lib/internal/fs/utils.js index f71a21b7d4..4d7f0d6765 100644 --- a/lib/internal/fs/utils.js +++ b/lib/internal/fs/utils.js @@ -28,6 +28,7 @@ const { const { once } = require('internal/util'); const { toPathIfFileURL } = require('internal/url'); const { + validateInt32, validateUint32 } = require('internal/validators'); const pathModule = require('path'); @@ -565,6 +566,7 @@ function warnOnNonPortableTemplate(template) { } const defaultRmdirOptions = { + retryDelay: 100, maxRetries: 0, recursive: false, }; @@ -580,6 +582,7 @@ const validateRmdirOptions = hideStackFrames((options) => { if (typeof options.recursive !== 'boolean') throw new ERR_INVALID_ARG_TYPE('recursive', 'boolean', options.recursive); + validateInt32(options.retryDelay, 'retryDelay', 0); validateUint32(options.maxRetries, 'maxRetries'); return options; |