1
0
Fork 0
mirror of https://gitlab.com/niansa/libcrosscoro.git synced 2025-03-06 20:53:32 +01:00
C++20 coroutine library
Find a file
Josh Baldwin c548433dd9
Correctly implement sync_wait and when_all_awaitable (#8)
See issue for more details, in general attempting to
implement a coro::thread_pool exposed that the coro::sync_wait
and coro::when_all only worked if the coroutines executed on
that same thread.  They should now possibly have the ability
to execute on another thread, to be determined in a later issue.

Fixes #7
2020-10-25 20:54:19 -06:00
.github/workflows Add CI & code coverage (#2) 2020-10-11 18:23:05 -06:00
inc/coro Correctly implement sync_wait and when_all_awaitable (#8) 2020-10-25 20:54:19 -06:00
src Correctly implement sync_wait and when_all_awaitable (#8) 2020-10-25 20:54:19 -06:00
test Correctly implement sync_wait and when_all_awaitable (#8) 2020-10-25 20:54:19 -06:00
.clang-format Issue 5/clang format (#6) 2020-10-14 08:53:00 -06:00
.gitignore Correctly implement sync_wait and when_all_awaitable (#8) 2020-10-25 20:54:19 -06:00
CMakeLists.txt Correctly implement sync_wait and when_all_awaitable (#8) 2020-10-25 20:54:19 -06:00
LICENSE Initial commit 2020-09-07 12:56:57 -06:00
Makefile Add tests for tasks that throw (#4) 2020-10-12 17:29:47 -06:00
README.md Add tests for tasks that throw (#4) 2020-10-12 17:29:47 -06:00

libcoro C++20 Coroutines

CI Coverage Status language license

libcoro is licensed under the Apache 2.0 license.

Background

Libcoro is a C++20 coroutine library. So far most inspiration has been gleaned from libcppcoro an amazing C++ coroutine library as well as Lewis Baker's great coroutine blog entries https://lewissbaker.github.io/. I would highly recommend anyone who is trying to learn the internals of C++20's coroutine implementation to read all of his blog entries, they are extremely insightful and well written.

Goal

Libcoro is currently more of a learning experience for myself but ultimately I'd like to turn this into a great linux coroutine base library with an easy to use HTTP scheduler/server.

Building

There is a root makefile with various commands to help make building and running tests on this project easier.

# Build targets
make debug|release-with-debug-info|release

# Run tests targets
make debug-test|release-with-debug-info-tests|release-tests

# Clean all builds.
make clean

# clang-format the code
make format