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

RE>febe interface async?

Reply to:   RE>febe interface async?
>We need to know whether the febe interface (and obviously, fm) is
>reentrant and asynchronous.  This affects the design of the montage
>scheduler and also impacts the user interface.   

MarkM just answered the febe part, so I'll kick in an answer on fm.  

fm is as event oriented as the event generator (specific implementation per
port).  All fm actions take place as the result of events, and each event
handler is expected to perform it's action rapidly (so as to not affect user
interaction).   It is possible for an event to fork a task to perform a long
(time consuming) operation.  Note that events are queued, so that if the
machine has the minimal multitasking ability to be blocked on comm and still
accept interrupts (like keyboard & mouse).  However, if the task containing the
fm event dispatcher is blocked, obviously no visual feedback occurs (at least
from fm).

The net interface is currently fairly simple and blocks (in most cases). 
However, as MarkM mentioned, there are several schemes available for not
blocking (giving some appearance of being asynchronous).  I believe that the
only way you can get the appearance of being reentrant is through multiple
connections to the backend (MarkM?).