<div>There were indeed two bugs in there, a missing barrier and the issue you described.</div><div><br></div>I also commented out the code if you want more details.<div><br clear="all"><div>--</div>Jérémie Laval<div><div><a href="http://neteril.org" target="_blank">http://neteril.org</a></div>

</div><br>
<br><br><div class="gmail_quote">On Wed, Jul 25, 2012 at 11:54 AM, Greg Young <span dir="ltr"><<a href="mailto:gregoryyoung1@gmail.com" target="_blank">gregoryyoung1@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

We have had some moving forward in our mono stability issues. I<br>
figured I would start up a chat here about one place that seems to be<br>
causing many problems.<br>
<br>
<br>
<a href="https://github.com/mono/mono/blob/master/mcs/class/corlib/System.Collections.Concurrent/ObjectPool.cs" target="_blank">https://github.com/mono/mono/blob/master/mcs/class/corlib/System.Collections.Concurrent/ObjectPool.cs</a><br>


<br>
I am not really sure the code here is actually thread safe... Maybe it<br>
doesn't need to be for some reason?<br>
<br>
We have added volatiles for add/remove index (yuriy pointed out that<br>
threads were often stuck at line 86) but even with that im still not<br>
sure its actually threadsafe. There are some weird edge conditions<br>
that seem to be here (like if CompareExchange fails 3 times it will<br>
just never set the remove index and continue on).<br>
<br>
Somebody has obviously spent a lot of time thinking about this code<br>
and optimizing it. I want to make sure we get the full "why" behind<br>
things so we dont a) waste time b) introduce issues.<br>
<span class="HOEnZb"><font color="#888888"><br>
Greg<br>
<br>
--<br>
Le doute n'est pas une condition agréable, mais la certitude est absurde.<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></span></blockquote></div><br></div>