<div dir="ltr"><div>thinking some more about it, I think the implementation should respect the comment.</div><div>Clearly, as it is, we can put the same process on multiple lists, which seems very wrong. Also, a process that stopped executing by waiting on a semaphore has started executing again without the semaphore being signalled, and with the process still on the semaphore's list. <br></div><div><br>   </div>    | evaluationProcess result sema testProcess |<br> sema := Semaphore new.<br>        testProcess := Processor activeProcess.<br>       result := OrderedCollection new.<br>      evaluationProcess := [<br>   result add: testProcess isBlocked.<br>   testProcess resume.<br>   result add: testProcess isBlocked.<br>   result add: (sema includes: testProcess).<br>                    ] fork.<br>       sema wait.<br>    result</div>