This distribution is a collection of programs that are generally unrelated, except in that they all deal with the concurrent programming. The main purpose of these programs is to be illustrative and educational.
- Coroutine
- tinync: A tiny
nc
implementation using coroutine. - fiber: A user-level thread (fiber) using
clone
system call. - preempt_sched: A preemptive userspace multitasking based on a SIGALRM signal.
- tinync: A tiny
- Multi-threading Paradigms
- tpool: A lightweight thread pool.
- Producer–consumer problem
- Lock-Free Data Structure
- ringbuffer: A lock-less ring buffer.
- ringbuf_shm: An optimized lock-free ring buffer with shared memory.
- mbus: A concurrent message bus.
- Synchronization
- Applications
- httpd: A multi-threaded web server.
- map-reduce: word counting using MapReduce.
- redirect: An I/O multiplexer to monitor stdin redirect using
timerfd
andepoll
. - picosh: A minimalist UNIX shell.
The above projects are released under the BSD 2 clause license. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.