Skip to content

Commit 7741626

Browse files
committed
fix: minor improvements to the rateLimiter of the file-watcher
1 parent bfb42a5 commit 7741626

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

shared/packages/worker/src/worker/accessorHandlers/lib/FileHandler.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,15 +186,18 @@ export abstract class GenericFileAccessorHandle<Metadata> extends GenericAccesso
186186

187187
let triggerSendUpdateTimeout: NodeJS.Timeout | null = null
188188
let triggerSendUpdateIsRunning = false
189+
let triggerSendUpdateRunAgain = false
189190
const triggerSendUpdate = () => {
191+
triggerSendUpdateRunAgain = false
190192
if (triggerSendUpdateTimeout) {
191193
clearTimeout(triggerSendUpdateTimeout)
192194
}
193195
triggerSendUpdateTimeout = setTimeout(() => {
194196
triggerSendUpdateTimeout = null
195197

196198
if (triggerSendUpdateIsRunning) {
197-
triggerSendUpdate() // try again later
199+
triggerSendUpdateRunAgain = true
200+
return
198201
}
199202

200203
;(async () => {
@@ -277,9 +280,11 @@ export abstract class GenericFileAccessorHandle<Metadata> extends GenericAccesso
277280
})
278281

279282
triggerSendUpdateIsRunning = false
283+
if (triggerSendUpdateRunAgain) triggerSendUpdate()
280284
})().catch((err) => {
281285
triggerSendUpdateIsRunning = false
282286
this.worker.logger.error(`Error in FileHandler triggerSendUpdate:${stringifyError(err)}`)
287+
if (triggerSendUpdateRunAgain) triggerSendUpdate()
283288
})
284289
}, 1000) // Wait just a little bit, to avoid doing multiple updates
285290
}

0 commit comments

Comments
 (0)