lwip-users
[Top][All Lists]
Advanced

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

Re: [lwip-users] lwIP RAW API and "deferred processing" indifferentconte


From: mat henshall
Subject: Re: [lwip-users] lwIP RAW API and "deferred processing" indifferentcontext
Date: Thu, 8 Dec 2011 13:12:31 -0800



On Wed, Dec 7, 2011 at 10:40 PM, junix <address@hidden> wrote:
Quoting mat henshall <address@hidden>:

You may want to look at the QP statemachine framework (www.state-machine.com)
for a reasonable very light weight framework that can be used with NO_SYS -
the author has an example using lwIP.
Thank you for the hint. Although I already built my own FSM framework some time ago, based on Martin Gomez' approach ( http://isa.uniovi.es/docencia/redes/EmbeddedSatateMachinesImplementation.pdf ), it's always interesting to see what else exists.

Thanks for the link I had not seen this before.


But I think you missed my point a little bit: the goal is not to replace any state machine processing. In fact I think you will still be forced to do your socket stuff in a state machine. The goal would be more to remove the need of implementing the whole accept and worker management by a frameworking letting the developer focus on his very problem (implementing the protocol for a socket endpoint using a stable API). As mentioned before, the idea is inspired by the strategy pattern where the strategy is the "protocoldriver" on top of a server framework.

I actually have my own FSM framework as well for various reasons, but I liked Qp's approach to 'active objects' and a very nice event queue coupled with  nested statemachines. 

The feature I was actually thinking about in the QP framework is rather than using worker 'threads', the use of 'active objects' that can receive events and always event handling always 'runs to completion' (RTC). It can be very useful and the framework overhead in terms of code is very small and ofcourse, the RTC semantics mean the advantage of not needing synchronization and other multi-threading constructs between the active objects. 

It is fairly easy ofcourse to create a simple event queuing mechanism, but I think these guys implementation is worth studying (he has a book that talks about various tradeoffs and design considerations), even if you choose not to use his code . He has thought deeply about this whole area...

 

_______________________________________________
lwip-users mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/lwip-users



--

Mat Henshall
Founder and CEO, Square Connect, Inc.
San Jose, CA
www.squareconnect.com
cell: 650.814.7585

reply via email to

[Prev in Thread] Current Thread [Next in Thread]