<div dir="ltr">Hi,<div><br></div><div>  Reported as:</div><div><a href="https://bugzilla.xamarin.com/show_bug.cgi?id=35828">https://bugzilla.xamarin.com/show_bug.cgi?id=35828</a><br></div><div>        Zoltan</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 12, 2015 at 12:42 PM, Martin Potter <span dir="ltr"><<a href="mailto:Martin.Potter@faithlife.com" target="_blank">Martin.Potter@faithlife.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div style="word-wrap:break-word;color:rgb(0,0,0);font-size:14px;font-family:Calibri,sans-serif">
<div>We have some code which works on Microsoft’s runtime and used to work on Mono 3.12, but now fails on Mono 4.2. Simplified code to reproduce the issue is as follows:</div>
<div><br>
</div>
<div>
<div>public class WorkStateThread</div>
<div>{</div>
<div><span style="white-space:pre-wrap"></span>public void Start()</div>
<div><span style="white-space:pre-wrap"></span>{</div>
<div><span style="white-space:pre-wrap"></span>m_thread = new Thread(ThreadProc);</div>
<div><span style="white-space:pre-wrap"></span>m_thread.Start(Thread.CurrentThread);</div>
<div><span style="white-space:pre-wrap"></span>m_thread.Join();</div>
<div><span style="white-space:pre-wrap"></span>}</div>
<div><br>
</div>
<div><span style="white-space:pre-wrap"></span>private void ThreadProc (object objData)</div>
<div><span style="white-space:pre-wrap"></span>{</div>
<div><span style="white-space:pre-wrap"></span>if (m_thread != Thread.CurrentThread)</div>
<div><span style="white-space:pre-wrap"></span>throw new InvalidOperationException ("m_thread != Thread.CurrentThread");</div>
<div><span style="white-space:pre-wrap"></span>}</div>
<div><br>
</div>
<div><span style="white-space:pre-wrap"></span>Thread m_thread;</div>
<div>}</div>
<div><br>
</div>
<div>class MainClass</div>
<div>{</div>
<div><span style="white-space:pre-wrap"></span>public static void Main (string[] args)</div>
<div><span style="white-space:pre-wrap"></span>{</div>
<div><span style="white-space:pre-wrap"></span>WorkStateThread ws = new WorkStateThread ();</div>
<div><span style="white-space:pre-wrap"></span>ws.Start ();</div>
<div><span style="white-space:pre-wrap"></span>Console.WriteLine ("Done");</div>
<div><span style="white-space:pre-wrap"></span>}</div>
<div>}</div>
</div>
<div><br>
</div>
<div>
<div>[TestFixture]</div>
<div>public class Test</div>
<div>{</div>
<div><span style="white-space:pre-wrap"></span>[Test]</div>
<div><span style="white-space:pre-wrap"></span>public void TestCase ()</div>
<div><span style="white-space:pre-wrap"></span>{</div>
<div><span style="white-space:pre-wrap"></span>WorkStateThread ws = new WorkStateThread ();</div>
<div><span style="white-space:pre-wrap"></span>ws.Start ();</div>
<div><span style="white-space:pre-wrap"></span>}</div>
<div>}</div>
</div>
<div><br>
</div>
<div>This code runs as expected when run from the command line, but if run as part of a unit test using NUnit, the InvalidOperationException is thrown.</div><span class="HOEnZb"><font color="#888888">
<div><br>
</div>
<div>— Martin</div>
</font></span></div>

<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" rel="noreferrer" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
<br></blockquote></div><br></div>