This repository contains examples of how to use the TooManyCooks asynchronous runtime. The main TMC project repository can be found at: https://github.com/tzcnt/TooManyCooks/
Some of the examples also use other libraries in the TMC ecosystem: https://github.com/tzcnt/tmc-asio/
Although the TMC libraries are licensed under the Boost Software License 1.0, the example code in this repository is public domain ("The Unlicense"), and may be copied or modified without attribution.
This repository uses CMake to download and configure the TMC libraries, either as CPM packages (by default), or as git submodules (optionally). It provides a CMakePresets.json with configurations for common Linux and Windows environments.
Linux:
- Clang 17 or newer
- GCC 14 or newer
Windows:
- Clang 17 or newer (via clang-cl.exe)
MSVC 19.42.34436
MSVC has an open bug with symmetric transfer and final awaiters that destroy the coroutine frame. The code will compile but crashes at runtime. (bug link)
- x86 (32- or 64-bit)
- AArch64