06.08.2013 Views

pSOSystem System Calls - Read

pSOSystem System Calls - Read

pSOSystem System Calls - Read

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

q_broadcast pSOS+ <strong>System</strong> <strong>Calls</strong><br />

Notes<br />

Hex Mnemonic Description<br />

0x65 ERR_STALEID Object's node has failed.<br />

1. q_broadcast() is particularly useful in situations where a single event (for<br />

example, an interrupt) must wake up more than one task. In such cases,<br />

q_broadcast() is clearly more efficient than multiple q_send() calls.<br />

2. If the caller is a task, it may be preempted as a result of this call.<br />

3. q_broadcast() can be intermixed with q_send() and q_urgent() calls to<br />

the same queue.<br />

4. q_broadcast() sends messages to an ordinary message queue. Use<br />

q_vbroadcast() to send messages to a variable length message queue.<br />

Multiprocessor Considerations<br />

1. If qid identifies a global queue residing on another processor node, then the<br />

pSOS+m kernel will internally make an RSC to that remote node to post the<br />

input message to that queue.<br />

2. If tasks awakened by this call do not reside on the local node, then the pSOS+m<br />

kernel will internally pass the message to each task's node of residence, whose<br />

pSOS+m kernel will ready the task and give it the relayed message. Thus, a<br />

q_broadcast() call, whether it is on the local or a remote queue, may cause<br />

pSOS+m activities on one or more other processor nodes.<br />

1-72 <strong>pSO<strong>System</strong></strong> <strong>System</strong> <strong>Calls</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!