(Revision 1 - 16 November 2000)
overview continuation of system call #6 - get here with a valid active thread and attributes set up and no more pending sends to the thread
on entry s2 target tcb base (l10 L6.3)
assignments s0 target thread fine state (l97) in t1 com partner (l100) t2 com partner's fine state (101) this routine t3 com partner's com partner (its pager) (l104)
| 97-99 | if target state not LOCKS got l114 LOCKS º thread in middle of a send operation Þ target partner must be LOCKR · blocked on a receive page fault · preempted during a receive in long ipc |
| 100-103 | if com partner not blocked waiting for a message from its pager goto l106 |
| 104-105 | else remove partner from its pager's sendq |
| 96,106-108 |
com partner tcb stacked v0 ¬ receive aborted error code com partner tcb fine_state ¬ READY READY LIST ¬ com partner |
| 109 | com partner tcb <-- no nested ipc (paging receive operation was aborted) |
| 96,110-112 | target tcb stacked v0 ¬
send aborted error code target tcb fine_state ¬ READY READY LIST ¬ target |
| 113 | goto l188 L6.10 |
| 114-129 | handle case of target preempted during a receive in long ipc,
LOCKR Þ target partner must be LOCKS · blocked on a receive page fault · preempted during a send in long ipc |