Wed Nov 12 16:13:23 CET 2008

CSP style channels on Xenomai

I'm trying to use queues for something they are probably not useful
for.  What I really want is CSP style channels.

There are two problems:
  * A select() is necessary to wait on multiple events.
  * Tasks might be too expensive for fine task granularity.

This describes the CT library from UTwente:


 Q: What is the difference between waiting on a set of messages from a
    single "socket", and waiting on a set of ports?  Can such
    descriptions be automatically transcribed?

Anyways, the event flag group services provide the necessary

  An event flag group is a synchronization object represented by a
  long-word structure; every available bit in such word can be used to
  map a user-defined event flag. When a flag is set, the associated
  event is said to have occurred. Xenomai tasks and interrupt handlers
  can use event flags to signal the occurrence of events to other
  tasks; those tasks can either wait for the events to occur in a
  conjunctive manner (all awaited events must have occurred to wake
  up), or in a disjunctive way (at least one of the awaited events
  must have occurred to wake up).