<HTML>
<HEAD>
<TITLE>Re: [Mono-dev] WaitAny does not consistently return when waiting on &nbsp;more than one WaitHandle</TITLE>
</HEAD>
<BODY>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Zoltan,<BR>
<BR>
Would it help if I created a Mac OS specific bugzilla? Is there someone else that can test this on Mac? (Geoff N, perhaps)?<BR>
<BR>
This behavior is the same (i.e., consistently inconsistent) on 10.5 and 10.6 for what it&#8217;s worth.<BR>
<BR>
Tom<BR>
<BR>
On 11/25/09 3:55 PM, &quot;Zoltan Varga&quot; &lt;<a href="vargaz@gmail.com">vargaz@gmail.com</a>&gt; wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Hi,<BR>
<BR>
  This seems to  work fine on linux.<BR>
<BR>
                   Zoltan<BR>
<BR>
On Thu, Nov 26, 2009 at 12:01 AM, Tom Philpot &lt;<a href="tom.philpot@logos.com">tom.philpot@logos.com</a>&gt; wrote:<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>We've written a small test case against Mono 2.7 (r146315) that confirms<BR>
that WaitAny() does not return in a consistent amount of time, or sometimes<BR>
at all when waiting on more than one WaitHandle. It also appears that there<BR>
are no test cases in Mono for this case.<BR>
<BR>
Our attached program takes 2 arguments. The first is the number of<BR>
milliseconds to wait before the wait handles are set, the second is the<BR>
number of milliseconds to wait in before exiting to give the thread pool<BR>
time to notify.<BR>
<BR>
We're running these tests on Mac OS X, if that helps.<BR>
<BR>
<BR>
<BR>
Example of Failure case:<BR>
<BR>
ws1048:Mono Patches tom.philpot$ /opt/mono/bin/mono WaitAnyTest.exe 35000<BR>
10000<BR>
Setup wait handles, sleeping for 35s...<BR>
Wait2: Calling WaitAny with 2 WaitHandles<BR>
Wait1: Calling WaitAny with 1 WaitHandle<BR>
done sleeping.<BR>
Setting event 2.<BR>
Sleeping for 10s to see if wait handles respond.<BR>
Wait1: WaitAny(1) returned 0.<BR>
<BR>
<BR>
Example of Successful case:<BR>
<BR>
ws1048:Mono Patches tom.philpot$ /opt/mono/bin/mono WaitAnyTest.exe 5000<BR>
10000<BR>
Setup wait handles, sleeping for 5s...<BR>
Wait1: Calling WaitAny with 1 WaitHandle<BR>
Wait2: Calling WaitAny with 2 WaitHandles<BR>
done sleeping.<BR>
Setting event 2.<BR>
Sleeping for 10s to see if wait handles respond.<BR>
Wait1: WaitAny(1) returned 0.<BR>
Wait2: WaitAny(2) returned 1.<BR>
RegisteredWaitForSingleObjectCallback called.<BR>
<BR>
<BR>
_______________________________________________<BR>
Mono-devel-list mailing list<BR>
<a href="Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><BR>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><BR>
<BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
<BR>
</SPAN></FONT></BLOCKQUOTE>
</BODY>
</HTML>