Protothreads 1.4 review
DownloadProtothreads are extremely lightweight stackless threads designed for severely memory constrained systems, such as small embedded sys
|
|
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 project can be used with or without an underlying operating system.
Protothreads provide a blocking context on top of an event-driven system, without the overhead of per-thread stacks. The purpose of protothreads is to implement sequential flow of control without complex state machines or full multi-threading.
While protothreads originally were created for memory-constrained embedded systems, it has found many uses as a general purpose library too. Examples include multimedia streaming server software, grid computing research software, and MPEG decoding software for Internet TVs.
Here are some key features of "Protothreads":
Main features:
Very small RAM overhead - only two bytes per protothread and no extra stacks
Highly portable - the protothreads library is 100% pure C and no architecture specific assembly code
Can be used with or without an OS
Provides blocking wait without full multi-threading or stack-switching
Freely available under a BSD-like open source license
Example applications:
Memory constrained systems
Event-driven protocol stacks
Small embedded systems
Sensor network nodes
Portable C applications
What's New in This Release:
PT_SCHEDULE() now returns true both when a protothread is waiting and when it has yielded.
A README file has been added for Visual C++ users that explains how protothreads may trigger a compiler bug and how to prevent this from happening.
Protothreads 1.4 keywords