fix: avoid starting and stopping spinner loops #7131
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This was a small regression introduced in #7026.
I didn't quite map the previous lib's API to nanospinner's correctly.
The intent here is to manually control each frame render and each clear. Instead, the spinner here was already started before it's passed in to this method, then it was cleared and started again on each chunk - but
start()
here would start a new interval loop and set up new node.js exit listeners butclear()
wouldn't clear them (reset()
does that).This was leading to unnecessary resource utilization and printing warnings like this:
The fix here is to just manually render a single frame (
.spin()
) at a time (andstop()
the initial loop).