Skip to content

myrimur/tsucor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tsucor

Tsucor is a C++ library featuring coroutines from scratch using Assembly for coroutines stack manipulations.

Coroutines implemented:

  • Asymmetric stackful
  • Symmetric stackful

Requirements

  • g++ / clang
  • CMake
  • x86-64 Linux

Compilation

mkdir build
cd build
cmake ..
cmake --build .

Usage example

A simple generator:

void gen(void* arg) {
    for (int i = 0; i < *static_cast<int*>(arg); ++i) {
        AsymCoro::yield(&i);
    }
    AsymCoro::yield(nullptr);
}

int n = 5;
AsymCoro gen_co{gen, &n};
while (true) {
    auto i = static_cast<int*>(gen_co());
    if (i == nullptr) {
        break;
    }
    std::cout << *i << std::endl;
}

About

C++ coroutine library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published