Implement a library in portable C/C++ (with a C interface) that gives channel communication and user-mode (lightweight) threads. The idea is that the library should be very fast and serve as a core for a domain specific language on top which uses the underlying library. The lightweight threads should not preempt bu be scheduled across OS level threads and/or processes. The channel communication should employ non-locking synchronization using memory fences. PyCSP may be used as a reference implementation.