Protothreads 1.4 review

Download
by rbytes.net on

Protothreads are extremely lightweight stackless threads designed for severely memory constrained systems, such as small embedded sys

License: BSD License
File size: 0K
Developer: Adam Dunkels
0 stars award from rbytes.net

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