As this library matures there has been a demand to standardize a set of control messages that can be processed by any SIMPL enabled application. These control messages might be for things such as:
It is relatively straightforward to add such functionality to "receiver" type processes who typically spend some of their life blocked waiting to receive a message. The case of "senders" is more problematic. Some "senders" are transient in that they come alive, do their thing and then vanish again. The category that we are more interested in are those "senders" which persist for significant lengths of time ... possibly spending a significant amount of that time blocked on a delayed reply from a "receiver". It would be advantageous to be able to interact with these types of sender processes as though they were "receivers".
We believe this type of change is quite easy to incorporate into the existing SIMPL paradigm. As we see it, the "sendMsgx()" function currently takes only a single argument ... the FCID of the intended recipient of the message. Once the message has been sent the function drops down and blocks on a read (inside the waitforbytes() function). With a strategic use of the select() function call this "waiting for reply" state could effectively block on more than one file descriptor. The control messages we are speaking of could be then routed down the normal "receiver" file descriptor which is normally not initialized for "sender" type processes. If a second argument to a function pointer was added to the sendMsgx() function call we could then call a user defined function for the purposes of handling these control messages.
As with most things it represents a "work in progress". Contributions are welcome.
back to main SIMPL page