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.
Continues from #55 and works towards #263 by introducing an abstraction layer for task scheduling and update steps. This allows Fusion's internals to be decoupled from Roblox's task scheduling and render stepping.
This will be most beneficial in tandem with the move to darklua, but may still be useful in the near term as it allows unit tests to synchronously override normally-async or normally-delaying operations by providing their own custom mock scheduling code.
Centralising task scheduling in unit tests (e.g.
waitForGC
) is explicitly out of scope of this change - unit tests should ideally run without delay, which requires us to move away from systems such as garbage collection which are inherently delayed.