DragonFly BSD
DragonFly kernel List (threaded) for 2005-02
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: protothreads

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Sat, 26 Feb 2005 12:21:56 -0800 (PST)

    No, I don't think so.  They sound just like continuations.  The basic
    mechanism isn't very complex, we actually use similar sequencing all
    over our network protocol stacks.  It's a very basic programming
    abstraction that doesn't really need a library or API abstraction to use.
    Besides, we have an API abstraction that does the job already... our
    LWKT messaging subsystem.

					Matthew Dillon 

:Protothreads are extremely lightweight stackless threads designed for
:severely memory constrained systems such as small embedded systems or 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.
: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. Protothreads provide conditional blocking inside C
:# No machine specific code - the protothreads library is pure C
:# Does not use error-prone functions such as longjmp()
:# Very small RAM overhead - only two bytes per protothread
:# 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
:Might be interesting for us?
:Jeroen Ruigrok van der Werven <asmodai(at)wxs.nl> / asmodai / kita no mono

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]