Which is why in terminate I domyList := self suspend.So the semaphore *should* still be the suspendingList, just without the process actually on the list...
sema := Semaphore new.p := [sema wait] fork.p suspend.p suspendingList == nil
sema asArray isEmpty