Thanks!
Didn't know it was so simple... I was kind of intimidated by "wait". Thought, well, that it suspended the thread no matter what.
Another question, out of curiosity:
Is it possible to have one thread wait for 2 other threads to finish? Would it also be solved with Semaphores like this?
s1 := Semaphore forMutualExclusion. s2 := Semaphore forMutualExclusion. [ s1 wait. do stuff .... s1 signal] fork. [ s2 wait. do stuff ..... s2 signal ] fork.
s1 wait. s2 wait. "Here we are sure the two other processes finished, kind of..."
Or is there a more "friendly" way? :-)
Thanks again!
Sebastian
You could use a Semaphore directly:
semaphore := Semaphore forMutualExclusion.
and then
semaphore wait "acquire lock" ... semaphore signal "release lock"
I am aware or Monitor/Mutex critical:, but I am not sure I can use it in my case.
Semaphore>>critical: simply does a wait and signal like above. But it ensures that if something goes wrong the semaphore is still signaled, so it's more easy to use.
- Bert -
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners