<div dir="ltr"><br><div>Should be fixed with <a href="https://github.com/mono/mono/commit/a31b580fdcbaa9a8a16d59ffb12d04f5872f54e8">https://github.com/mono/mono/commit/a31b580fdcbaa9a8a16d59ffb12d04f5872f54e8</a></div><div>
<br></div><div>Please, try to compile a fresh version of mono and check if the issue is still present.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/8/13 Nikita Tsukanov <span dir="ltr"><<a href="mailto:keks9n@gmail.com" target="_blank">keks9n@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I've filled a bug report: <a href="https://bugzilla.xamarin.com/show_bug.cgi?id=13933" target="_blank">https://bugzilla.xamarin.com/show_bug.cgi?id=13933</a> (also increased thread count from 2 to 10 to make it easier to reproduce the issue).</div>
<div class="HOEnZb"><div class="h5">
<div class="gmail_extra"><br><br><div class="gmail_quote">2013/8/12 Nikita Tsukanov <span dir="ltr"><<a href="mailto:keks9n@gmail.com" target="_blank">keks9n@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><div><br></div>Oh, great. I've got lockup and segfault (on different runs) with this code:<div>



<font face="Consolas">
<span style="color:rgb(68,68,68)">                </span><span style="color:rgb(0,150,149)">static</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(51,100,164)">INancyEngine</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">_engine</span><span style="color:rgb(68,68,68)">;</span><div>

<br>

<span style="color:rgb(68,68,68)">                </span><span style="color:rgb(0,150,149)">public</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(0,150,149)">static</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(0,150,149)">void</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">Main</span><span style="color:rgb(68,68,68)">(</span><span style="color:rgb(0,150,149)">string</span><span style="color:rgb(68,68,68)">[]</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">args</span><span style="color:rgb(68,68,68)">)</span><br>



<span style="color:rgb(68,68,68)">                </span><span style="color:rgb(68,68,68)">{</span><br>
</div><span style="color:rgb(68,68,68)">                        </span><span style="color:rgb(0,150,149)">var</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">pool</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">=</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(0,150,149)">new</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(51,100,164)">SmartThreadPool</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">()</span><span style="color:rgb(68,68,68)">;</span><div>

<br>

<br>
<span style="color:rgb(68,68,68)">                        </span><span style="color:rgb(0,150,149)">var</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">bt</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">=</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(0,150,149)">new</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(51,100,164)">DefaultNancyBootstrapper</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">()</span><span style="color:rgb(68,68,68)">;</span><br>



<span style="color:rgb(68,68,68)">                        </span><span style="color:rgb(68,68,68)">bt</span><span style="color:rgb(68,68,68)">.</span><span style="color:rgb(68,68,68)">Initialise</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">()</span><span style="color:rgb(68,68,68)">;</span><br>



</div><span style="color:rgb(68,68,68)">                        </span><span style="color:rgb(68,68,68)">_engine</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">=</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">bt</span><span style="color:rgb(68,68,68)">.</span><span style="color:rgb(68,68,68)">GetEngine</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">()</span><span style="color:rgb(68,68,68)">;</span><br>



<span style="color:rgb(68,68,68)">                        </span><span style="color:rgb(0,150,149)">for</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">(</span><span style="color:rgb(0,150,149)">int</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">c</span><span style="color:rgb(68,68,68)">=</span><span style="color:rgb(245,125,0)">0</span><span style="color:rgb(68,68,68)">;</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">c</span><span style="color:rgb(68,68,68)"><</span><span style="color:rgb(245,125,0)">2</span><span style="color:rgb(68,68,68)">;</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">c</span><span style="color:rgb(68,68,68)">++</span><span style="color:rgb(68,68,68)">)</span><br>



<span style="color:rgb(68,68,68)">                                </span><span style="color:rgb(0,150,149)">new</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(51,100,164)">Thread</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">(</span><span style="color:rgb(68,68,68)">ThreadProc</span><span style="color:rgb(68,68,68)">)</span><span style="color:rgb(68,68,68)">.</span><span style="color:rgb(68,68,68)">Start</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">()</span><span style="color:rgb(68,68,68)">;</span><br>



<span style="color:rgb(68,68,68)">                        </span><span style="color:rgb(51,100,164)">Thread</span><span style="color:rgb(68,68,68)">.</span><span style="color:rgb(68,68,68)">Sleep</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">(</span><span style="color:rgb(68,68,68)">-</span><span style="color:rgb(245,125,0)">1</span><span style="color:rgb(68,68,68)">)</span><span style="color:rgb(68,68,68)">;</span><br>



<span style="color:rgb(68,68,68)">                </span><span style="color:rgb(68,68,68)">}</span><br>
<br>
<span style="color:rgb(68,68,68)">                </span><span style="color:rgb(0,150,149)">static</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(0,150,149)">void</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">ThreadProc</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">()</span><br>



<span style="color:rgb(68,68,68)">                </span><span style="color:rgb(68,68,68)">{</span><br>
<span style="color:rgb(68,68,68)">                        </span><span style="color:rgb(0,150,149)">int</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">crid</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">=</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(245,125,0)">0</span><span style="color:rgb(68,68,68)">;</span><br>



<span style="color:rgb(68,68,68)">                        </span><span style="color:rgb(0,150,149)">while</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">(</span><span style="color:rgb(0,150,149)">true</span><span style="color:rgb(68,68,68)">)</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">{</span><br>



<span style="color:rgb(68,68,68)">                                </span><span style="color:rgb(68,68,68)">crid</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">++;</span><br>
<span style="color:rgb(68,68,68)">                                </span><span style="color:rgb(0,150,149)">var</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">resp</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">=</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">_engine</span><span style="color:rgb(68,68,68)">.</span><span style="color:rgb(68,68,68)">HandleRequest</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">(</span><div>

<br>

<span style="color:rgb(68,68,68)">                                        </span><span style="color:rgb(0,150,149)">new</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(51,100,164)">Request</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">(</span><span style="color:rgb(245,125,0)">"</span><span style="color:rgb(245,125,0)">GET</span><span style="color:rgb(245,125,0)">"</span><span style="color:rgb(68,68,68)">,</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(245,125,0)">"</span><span style="color:rgb(245,125,0)">/</span><span style="color:rgb(245,125,0)">"</span><span style="color:rgb(68,68,68)">,</span><br>



<span style="color:rgb(68,68,68)">                                             </span><span style="color:rgb(0,150,149)">new</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(51,100,164)">Dictionary</span><span style="color:rgb(68,68,68)"><</span><span style="color:rgb(0,150,149)">string</span><span style="color:rgb(68,68,68)">,</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(51,100,164)">IEnumerable</span><span style="color:rgb(68,68,68)"><</span><span style="color:rgb(0,150,149)">string</span><span style="color:rgb(68,68,68)">>></span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">()</span><span style="color:rgb(68,68,68)">,</span><br>



<span style="color:rgb(68,68,68)">                                             </span><span style="color:rgb(51,100,164)">RequestStream</span><span style="color:rgb(68,68,68)">.</span><span style="color:rgb(68,68,68)">FromStream</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">(</span><span style="color:rgb(0,150,149)">new</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(51,100,164)">MemoryStream</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">()</span><span style="color:rgb(68,68,68)">,</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(245,125,0)">0</span><span style="color:rgb(68,68,68)">,</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(245,125,0)">0</span><span style="color:rgb(68,68,68)">)</span><span style="color:rgb(68,68,68)">,</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(245,125,0)">"</span><span style="color:rgb(245,125,0)">http</span><span style="color:rgb(245,125,0)">"</span><span style="color:rgb(68,68,68)">,</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(245,125,0)">"</span><span style="color:rgb(245,125,0)">"</span><span style="color:rgb(68,68,68)">,</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(245,125,0)">"</span><span style="color:rgb(245,125,0)">127</span><span style="color:rgb(245,125,0)">.</span><span style="color:rgb(245,125,0)">0</span><span style="color:rgb(245,125,0)">.</span><span style="color:rgb(245,125,0)">0</span><span style="color:rgb(245,125,0)">.</span><span style="color:rgb(245,125,0)">1</span><span style="color:rgb(245,125,0)">"</span><span style="color:rgb(68,68,68)">))</span><span style="color:rgb(68,68,68)">;</span><br>



<span style="color:rgb(68,68,68)">                                </span><span style="color:rgb(68,68,68)">resp</span><span style="color:rgb(68,68,68)">.</span><span style="color:rgb(68,68,68)">Response</span><span style="color:rgb(68,68,68)">.</span><span style="color:rgb(68,68,68)">Contents</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">(</span><span style="color:rgb(0,150,149)">new</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(51,100,164)">MemoryStream</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">())</span><span style="color:rgb(68,68,68)">;</span><br>



</div><span style="color:rgb(68,68,68)">                                </span><span style="color:rgb(51,100,164)">Console</span><span style="color:rgb(68,68,68)">.</span><span style="color:rgb(68,68,68)">WriteLine</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">(</span><span style="color:rgb(245,125,0)">"</span><span style="color:rgb(245,125,0)">Request</span><span style="color:rgb(245,125,0)"> </span><span style="color:rgb(245,125,0)">#</span><span style="color:rgb(255,0,0)">{</span><span style="color:rgb(255,0,0)">0</span><span style="color:rgb(255,0,0)">}</span><span style="color:rgb(255,0,0)"></span><span style="color:rgb(245,125,0)"> </span><span style="color:rgb(245,125,0)">done</span><span style="color:rgb(245,125,0)">"</span><span style="color:rgb(68,68,68)">,</span><span style="color:rgb(68,68,68)"> </span><span style="color:rgb(68,68,68)">crid</span><span style="color:rgb(68,68,68)">)</span><span style="color:rgb(68,68,68)">;</span><br>



<span style="color:rgb(68,68,68)">                        </span><span style="color:rgb(68,68,68)">}</span><br>
<span style="color:rgb(68,68,68)">                </span><span style="color:rgb(68,68,68)">}</span></font>  </div><div><br></div><div>It just uses nancyfx engine from 2 threads.</div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>