This C library provides an implementation of channels, inspired by Hoare and popularized by the Go programming language. It supports buffered and unbuffered channels, as well as the select statement in both blocking and non-blocking forms. Currently, the library works with Ptreads, but support for Win32 threads is still in progress. To use the library, simply include the CspChan.h and CspChan.c files in your project or build a shared library with the CspChan.c file. The example code provided demonstrates how to use the library. There are other C++ and C libraries that implement similar functionality, but the aim of this library is to provide a C89 implementation of Go channels. For support and further information, refer to the Github issue list or contact the author directly.
https://github.com/rochus-keller/CspChan