SkillAgentSearch skills...

Greeny

Greeny is a C++ Green threads and coroutines library

Install / Use

/learn @nifigase/Greeny
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Greeny

Greeny is a C++ Green threads and coroutines library

This is a complete rewrite of https://github.com/yigalirani/green_threads library.

Advantages over original library

  • Multiple platforms are supported. Original library was hardly bound to MS VisualStudio on i386.
  • Fully object-oriented design with no global variables - this allows using green threads in multithreaded programs. You may have multiple green thread sets (contexts) in multiple threads.
  • Arbitrary callback types (functors, callable objects, etc.)
  • Variable stack sizes - you may set allocated stack size for each green thread.
  • next() function without "tid" parameter to get a posted value of any other thread.

Motivation (same as in original library):

  • Write faster multithreaded programs by utilizing reduced context switch time.
  • Write shorter and more elegant programs by using the yield functionality that is modeled after the python yield keyword and co-routines.

Getting started: look at the very short api and example program

Future development:

  • Automatically grow stack sizes if stacks are nearly exhausted

Requirements

  • C++11-compatible compiler
  • boost libraries (Used: ptr_containers)

Building Build test using CMake:

  • mkdir build
  • cd build
  • cmake -DCMAKE_BUILD_TYPE=DEBUG ..
  • make

Platforms

  • GCC on AMD64
  • GCC on i386

Related Skills

View on GitHub
GitHub Stars14
CategoryDevelopment
Updated1y ago
Forks3

Languages

C++

Security Score

75/100

Audited on Mar 17, 2025

No findings