Releases: codeinred/conduit
Exceptions get thrown from co_await
In this release, we fixed exception handling so that exceptions get thrown from a co_await expression as one would expect
Added support for MSVC
In this release we patched conduit to add support for MSVC. We also changed the way we build tests, so that each test is now in it's own cpp file. This allows for easier identification of why a build fails to compile when it fails to compile.
Exceptions now propagate out of a coroutine
Prior to this release, an exception thrown inside a coroutine would either be ignored entirely, or would result in the program terminating. This release adds support for exception handling, so that now exceptions propagate normally.
Note that when an exception is thrown, it will be propagated through whatever function most recently resumed the coroutine. If you have one coroutine co_awaiting on another coroutine that throws an exception, it will be destroyed and cleaned up, but won't observe the exception.
Support for coroutines which resume and throw an exception from a co_await expression will be added in a future release, however (as far as I know) it's not possible to do so without introducing overhead on the "good" path. The possibility of implementing them in a way similar to herpceptions will be explored and added, if discovered to be a viable route.
Added async::suspend_invoke
v0.2.0 Added suspend_invoke and tags::on_resume
All builds passing on Github Actions
Conduit is nearing completion. This version is a beta version that has been tested and shown to compile on several different systems and configurations. Please feel free to use this library in your code, although it should be noted that there may be slight changes in the interface of conduit until it reaches version 1.0.