Abstract
Semaphore, with undefined result. Furthermore, Kearns uses a counter, s.wakecount to record the number of pending wakeup signals not yet consumed by the processes that are in the midst of executing P operations. However, since each increment of s.wakecount by a V does a VB(s.delay), and each process engaged in the P also does VB(s.delay) when s.wakecount > 0, if there are N suspended processes when N V's are done, there will be 2N-1 VB's executed. Both mistakes can be corrected by adding the italicized line to his code for V:

This publication has 4 references indexed in Scilit: