nbody.Semaphore.signal


void signal()
Vars: int TEMP$1, Semaphore TEMP$3, int TEMP$0, SimEngine TEMP$4, boolean TEMP$2.
QueueObject
q0ARG
q1TEMP
q2TEMP2
q3TEMP3
q4TEMP4
q5LOADADDR
q6LOADDATA
q7STOREADDR
q8STOREDATA
q9THIS
q10TEMP$0
q11TEMP$1
q12TEMP$2
q13TEMP$3
q14TEMP$4
signal_top11
(ASSIGN (ENQUEUE NO TEMP$0) (IVARREF (THIS) semCount))
(ASSIGN (ENQUEUE NO TEMP$1) (PLUS (DEQUEUE NO TEMP$0) 1))
(ASSIGN (IVARSET (THIS) semCount) (DEQUEUE NO TEMP$1))
(ASSIGN (ENQUEUE NO TEMP$0) (IVARREF (THIS) semCount))
(TEST (EQUALS (DEQUEUE NO TEMP$0) 2))
true_branch12
(ASSIGN (IVARSET (THIS) semCount) 0)
(ASSIGN (ENQUEUE NO TEMP$2) (IVARREF (THIS) top))
(TEST (NOT (DEQUEUE NO TEMP$2)))
true_branch13
(CALL (METHODACCESS (LIBRARY) null) signalling semaphore)
(ASSIGN (ENQUEUE NO TEMP$3) (IVARREF (THIS) parent))
(CALL (METHODACCESS (DEQUEUE NO TEMP$3) People.Method:signal))
after_if14
(TEST (IVARREF (THIS) top))
true_branch15
(CALL (METHODACCESS (LIBRARY) null) signalling top)
(ASSIGN (ENQUEUE NO TEMP$4) (IVARREF (THIS) se))
(CALL (METHODACCESS (DEQUEUE NO TEMP$4) People.Method:signal))
after_if16
after_if17