<br><br><div class="gmail_quote">On Wed, Jul 1, 2009 at 4:22 PM, Igor Stasenko <span dir="ltr"><<a href="mailto:siguctua@gmail.com">siguctua@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
2009/7/1 Mariano Martinez Peck <<a href="mailto:marianopeck@gmail.com">marianopeck@gmail.com</a>>:<br>
<div><div></div><div class="h5">> Hi folks! I am doing some benchmarks and I having problems with fork (I<br>
> think).<br>
><br>
> I have this method collect:<br>
><br>
> collect<br>
> |semaphores tr|<br>
> semaphores := Array new: 10.<br>
> tr := ThreadSafeTranscript new.<br>
> tr open.<br>
> 1 to: 10 do: [ :index | semaphores at: index put: Semaphore<br>
> forMutualExclusion ].<br>
><br>
> 1 to: 10 do: [:i |<br>
> [<br>
> tr show: 'one fork'; cr.<br>
> (semaphores at: i) signal.<br>
> ] fork<br>
> ].<br>
><br>
> semaphores do: [:each | each wait ].<br>
> tr show: 'all forks proccesed'; cr.<br>
><br>
><br>
> What I want is that the method collect returns when ALL of the forks created<br>
> inside, are finished. Obviously in my real code, I don't do a transcript<br>
> show: but another thing.<br>
><br>
> I would expect something like this:<br>
><br>
> one fork<br>
> one fork<br>
> one fork<br>
> one fork<br>
> one fork<br>
> one fork<br>
> one fork<br>
> one fork<br>
> one fork<br>
> one fork<br>
> all forks proccesed<br>
><br>
> But the output is:<br>
><br>
><br>
> all forks proccesed<br>
> one fork<br>
> one fork<br>
> one fork<br>
> one forkone fork<br>
> one fork<br>
> one fork<br>
> one forkone fork<br>
> one fork<br>
> one fork<br>
> one forkone fork<br>
><br>
> So, I guess it isn't working :( I don't know too much about forks so any<br>
> help is welcome!<br>
><br>
> can be a problem with ThreadSafeTranscript ? If so, how could I test if my<br>
> code is working as expected ?<br>
><br>
<br>
</div></div>Mariano, sorry it way my mistake. In example that i gave you on IRC ,<br>
i put Semaphore forMutualExclusion,<br>
while obviously it should be simply: Semaphore new.<br>
</blockquote><div><br>Sorry, I was having lunch. <br><br>Igor: I didn't know that sig__ where you :) Actually, I was just doing some tests and saw that using Semaphore new instead of Semaphore forMutualExclusion do what I wanted. I then saw forMutualExclusion implementation and it does a signal after the new :)<br>
<br>Thanks for the help!!<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<br>
<br>
> Thanks,<br>
><br>
> Mariano<br>
><br>
><br>
><br>
><br>
><br>
<font color="#888888"><br>
<br>
<br>
--<br>
Best regards,<br>
Igor Stasenko AKA sig.<br>
<br>
</font></blockquote></div><br>