Hi all, I have a proposal and Iâd like to hear your opinion. Right now, when I want to wait for a process to finish I use something like #forkAndWait or I write a block with semaphores myself. This works fine for processes that I spawn and then immediately want to wait for. But what if I spawn a process somewhere else and only later know that I want to wait for its termination? Currently I would construct a polling loop to do that. Hereâs a different idea (which Iâve tested): 1. add instance variable âterminationSemaphoreâ to Process 2. at the end of Process>>terminate #ensure: that all waiting processes are signaled 3. add #waitForTermination message to Process: waitForTermination terminationSemaphore ifNil: [ terminationSemaphore := Semaphore new ]. self resume. terminationSemaphore wait This enables code like the following: result := 0. p := [ result := 2. 2 seconds asDelay wait ] newProcess priority: 20; yourself. âdonât run the new process yet" [ p waitForTermination. result2 := 3. ] forkAt: 30. âp is now running, the second process is waiting" p waitForTermination. âp is still running, two processes are waitingâ âbecause processes waiting on a semaphore are signaled in the order they sent #wait we even achieve ordering (at least with equal process priorities) and so âresult2â is not nil but 3â {result. result2} â#(2 3) I wrote this in 10 minutes, so thereâs room for polishing. I just want to know if this is something other people might want and if there are potential problems with process termination and semaphores which I am not aware of. Cheers, Max