willcassella / cro

Coroutines/Fibers for C++

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cro

Coroutines/Fibers for C++

After spending some time trying to learn assembly, I wanted to actually make use of it by writing something that couldn't be implemented in standard C or C++: coroutines.

There is currenly a technical specification for making coroutines an official part of the C++ language, but that is for stackless coroutines which make different tradeoffs than stackful ones do, and having both at your disposal is useful.

Current features:

  • Ability to treat any function with a single void* argument and without a return type function as a coroutine/fiber entry point
  • Windows x64 support

Almost current features:

  • Early destruction of coroutine objects *(Should work, but having problems...)

Planned features:

  • System V ABI support (Linux, Mac)
  • Investigate WASM support (may not be possible yet)
  • Job-based parallelism wrapper library

Not planned features:

  • x86_32 support

About

Coroutines/Fibers for C++

License:MIT License


Languages

Language:Assembly 56.8%Language:C++ 43.2%