Protothreads: Lightweight Stackless Threads in C
Protothreads are extremely lightweight stackless threads designed for severely memory constrained systems, such as small embedded systems or wireless sensor network nodes. Protothreads provide linear code execution for event-driven systems implemented in C. Protothreads can be used with or without an underlying operating system to provide blocking event-handlers. While protothreads originally were created for memory-constrained embedded systems, it has found many uses as a general purpose library too.
Source: dunkels.com