Hi,<div><br></div><div>  This is now fixed in SVN HEAD/2.6 branch.</div><div><br></div><div>                   Zoltan<br><br><div class="gmail_quote">On Thu, Mar 4, 2010 at 3:12 PM, cpMon <span dir="ltr">&lt;<a href="mailto:page.cal@gmail.com">page.cal@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>
I never get a signal when System.Threading.Monitor::Exit gets called too many<br>
times. Further, I traced it down into the mono 2.6.1 code tree, and<br>
mono_monitor_exit is never called. The trampoline generates the code, but<br>
it&#39;s never called. Can you provide a quick fix? It seems like a glaring bug.<br>
Attached is the failing source test along with a mono trace.<br>
<br>
Thank You,<br>
Cal Page<br>
<br>
using System;<br>
using System.Threading;<br>
<br>
public class HelloWorld<br>
{<br>
        public static Object myMonitor = new Object();<br>
        public static bool ok = false;<br>
<br>
        public static void monitorTest()<br>
        {<br>
                Console.WriteLine(&quot;calling Enter&quot;);<br>
<br>
                Monitor.Enter(myMonitor);<br>
<br>
                Console.WriteLine(&quot;calling Exit&quot;);<br>
<br>
                Monitor.Exit(myMonitor);<br>
<br>
                try {<br>
<br>
                        Console.WriteLine(&quot;calling Exit #2&quot;);<br>
<br>
                        Monitor.Exit(myMonitor);<br>
                } catch ( Exception e ) {<br>
                        Console.WriteLine (&quot;caught exception&quot;);<br>
                        ok = true;<br>
                }<br>
        }<br>
<br>
        static public void Main ()<br>
        {<br>
                Console.WriteLine (&quot;Hello Mono World&quot;);<br>
<br>
                monitorTest();<br>
<br>
                if ( !ok ) Console.WriteLine(&quot;TEST FAILED&quot;);<br>
        }<br>
<br>
}<br>
<br>
<br>
Iinteral trace:<br>
<br>
** Message: WSAStartup: high version 0x202<br>
** Message: mono_arch_create_monitor_exit_trampoline_full: entry<br>
** Message: mono_arch_create_monitor_enter_trampoline_full: entry<br>
** Message: mono_monitor_enter: (-1218435344) Locking 0x5cff0<br>
** Message: mono_monitor_try_enter_internal: (-1218435344) Trying to lock<br>
object 0x5cff0 (-1 ms)<br>
** Message: mon_new: allocating more monitors: 16<br>
** Message: mono_monitor_enter: (-1218435344) Locking 0x6afc0<br>
** Message: mono_monitor_try_enter_internal: (-1218435344) Trying to lock<br>
object 0x6afc0 (-1 ms)<br>
Hello Mono World<br>
calling Enter<br>
** Message: mono_monitor_enter: (-1218435344) Locking 0x5cff8<br>
** Message: mono_monitor_try_enter_internal: (-1218435344) Trying to lock<br>
object 0x5cff8 (-1 ms)<br>
calling Exit<br>
calling Exit #2<br>
TEST FAILED<br>
** Message: WSACleanup: cleaning up<br>
<font color="#888888"><br>
<br>
--<br>
View this message in context: <a href="http://n4.nabble.com/System-Threading-Monitor-Exit-fails-in-latest-trees-tp1578116p1578116.html" target="_blank">http://n4.nabble.com/System-Threading-Monitor-Exit-fails-in-latest-trees-tp1578116p1578116.html</a><br>

Sent from the Mono - Dev mailing list archive at Nabble.com.<br>
_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto: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" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
</font></blockquote></div><br></div>