L 6.8:  Target thread state was LOCKS

(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