[Mono-dev] ObjectPool

Yuriy Solodkyy yuriy at couldbedone.com
Wed Jul 25 11:59:25 UTC 2012


Hi Jérémie,

thank you for so quick fix!

I'll build mono with your fix and let you know how it works.

It seems that a lot of our previously reported problems with sockets
are due to ObjectPool.

-yuriy

On Wed, Jul 25, 2012 at 2:43 PM, Jérémie Laval <jeremie.laval at gmail.com> wrote:
> There were indeed two bugs in there, a missing barrier and the issue you
> described.
>
> I also commented out the code if you want more details.
>
> --
> Jérémie Laval
> http://neteril.org
>
>
>
> On Wed, Jul 25, 2012 at 11:54 AM, Greg Young <gregoryyoung1 at gmail.com>
> wrote:
>>
>> We have had some moving forward in our mono stability issues. I
>> figured I would start up a chat here about one place that seems to be
>> causing many problems.
>>
>>
>>
>> https://github.com/mono/mono/blob/master/mcs/class/corlib/System.Collections.Concurrent/ObjectPool.cs
>>
>> I am not really sure the code here is actually thread safe... Maybe it
>> doesn't need to be for some reason?
>>
>> We have added volatiles for add/remove index (yuriy pointed out that
>> threads were often stuck at line 86) but even with that im still not
>> sure its actually threadsafe. There are some weird edge conditions
>> that seem to be here (like if CompareExchange fails 3 times it will
>> just never set the remove index and continue on).
>>
>> Somebody has obviously spent a lot of time thinking about this code
>> and optimizing it. I want to make sure we get the full "why" behind
>> things so we dont a) waste time b) introduce issues.
>>
>> Greg
>>
>> --
>> Le doute n'est pas une condition agréable, mais la certitude est absurde.
>> _______________________________________________
>> Mono-devel-list mailing list
>> Mono-devel-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>



-- 
Yuriy Solodkyy
(y.solodkyy at gmail.com)


More information about the Mono-devel-list mailing list