Remove implementation of coroutine scope in generated services #35
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.
Implementing
CoroutineScope
in the generated services has proven to cause too many issues with ambiguous context / scope resolution.Classes implementing
CoroutineScope
should have their life cycle bound to the start and stop of the unit of work they represent. Since service implementations generally have a life cycle that spans the life of the application, this makes them an Ill fit for implementing coroutine scope.The original intent of implementing
CoroutineScope
was to give services a mechanism to provide an initial coroutine context for rpc calls. That initial context would be used to create a proper scope per rpc method invocation.This pr introduces a new interface for services to implement that will still allow configuration of the initial rpc context. It will also allow less error prone usages of coroutines in service instances