Igor Stasenko wrote:
On 20/12/2007, Andreas Raab andreas.raab@gmx.de wrote:
Your interpretation of "suspended" is different from what Squeak means by it. "Suspended" means: This process cannot be made runnable by either a process switch or a semaphore signal.
Hmm, how it differs from 'cannot be made runnable until it will be resumed by sending #resume message'?
It is equivalent. In your example the process *could* be made runnable (by the semaphore being signaled) so by this definition it wasn't suspended.
In the current implementation a #resume is not a counterpart of #suspend and we all have to pay consequences.
True. But making them symmetric by changing suspend is not useful. If you wanted to make them symmetric you'd have to change resume so that it puts the process back on the list it was suspended frm.
The #resume should be no-op if process was not suspended by previous call of #suspend. But currently, by sending #resume to process which waiting for signal causing it to continue running as if signal raised.
That is a bug and should be fixed.
Cheers, - Andreas