Create Warning Fiber In Test Clock Scope #7787
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.
Resolves zio/zio-http#1896.
Currently in the
TestClockwe fork a warning fiber when a caller accesses the time that we interrupt when the caller actually adjusts the time or when the scope of theTestClockis closed.However, this can create an issue if the warning fiber is forked in an inner scope where for example it uses an executor that is not valid outside that scope and the fiber is interrupted when the
TestClockscope is closed after the inner scope is closed.We can prevent this by forking the fiber at the time that the
TestClocklayer is constructed and merely completing a promise when we want to "start" the warning. This way we can ensure that the fiber is forked in a scope that is still valid when the fiber is finalized.