[Return to Top] [Standard Processes]

EROS Object Reference

Standard Processes

Signal Multiplexor

D R A F T

Description

A signal multiplexor serves as a distribution mechanism. It delivers 32 single-bit signals to up to 16 recipients. One or more recipients calls the signal multiplexor requesting to be woken up when any of a specified set of signals has been raised. A sender calls the signal multiplexor to cause signals to be posted. When a signal is posted, it is placed in the input signal sets of all receivers.

When a sleeping receiver has indicated a desire to receive a newly-posted signal, it is awakened. Whan a receiver indicates that it would like to sleep until an already-posted signal has arrived, it returns immediately.

Note that the signal multiplexor is designed to distribute single-bit, level-triggered ``interrupts'' where the sender must not be delayed. This tool is not designed to serve as an event queue.


Operations

Check Alleged Key Type (OC = KT)

Returns the alleged type of the object.
ReplyR1AKT_SigMux: Object is a signal multiplexor.

Post Signal(s) (OC = 1)

Posts the specified set of signals to all recipients. Posted signals will be received at most once by every recipient who waits for them. Once posted to a given recipient, the signal remains posting until received.

RequestR1A 32-bit bit-set of signals to be posted.
ResultRC_OKSignals have been posted.

Wait for Signal(s) (OC = 2)

Blocks the caller until one or more of the specified signals has been posted.

If two callers request to wait for signals using the same recipient capability, the second will prevail, and the first will never be awakened by the signal multiplexor. The resume key of the first requestor is overwriten by the resume key for the second.

RequestR1A 32-bit bit-set of signals. The caller will be awakened when any member of this set is posted.
ReplyR1The set of requested signals that were posted at the time this process was awakened.
ResultRC_OKSignals have been posted.

Fabricate Recipient Capability (OC = 128)

Fabricates a recipient capability for the specified received index. This capability can be used by the recipient to wait for signals to be posted.

This order is not permitted on recipient capabilities.

RequestR1The requested recipient index.
ReplyRK0A recipient capability.
ResultRC_OKRecipient capability has been generated.

Copyright 1998 by Jonathan Shapiro. All rights reserved. For terms of redistribution, see the GNU General Public License