POC coroutine impl #4
Open
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.
In a recent stream, @rexim decided that coroutines are not feasible due to the requirement of a scheduler.
With this POC, I want to show that this is very much not required. In this simple example, I have a task
combinethat simply iterates a list of tasks, and calls each of them. I think you already had this in the stream.Then in the stream you went in the direction of
co_await, which as you said requires implementation of custom schedulers. In effect, however, the kind ofawaityou seek can be implemented trivially via a macro, which simply exhauts the coroutine. I am not sure why such a use-case was not considered in the standard, since this is also how Rust does it (polluntil complete) afaik.Sorry if you already knew this, just felt the conclusion of the stream was a bit unsatisfying.