Cygwin 1.7: Concurrency Issue with Shared State Initialization
Christopher Faylor
cgf-use-the-mailinglist-please@cygwin.com
Tue Mar 9 16:22:00 GMT 2010
On Tue, Mar 09, 2010 at 12:36:08PM +0100, Corinna Vinschen wrote:
>On Mar 9 11:08, Schmidt, Oliver wrote:
>> Hi Christopher,
>>
>> Fist of all thanks for your immediate feedback :-)
>>
>> >> /* Initialize installation root dir. */
>> >> if (!installation_root[0])
>> >> init_installation_root ();
>>
>> > I'll check in something tonight which attempts to solve this problem.
>>
>> Thanks in advance.
>>
>> > It's a somewhat tricky problem because adding a mutex here would slow
>> > down every invocation of a cygwin program and we don't want to add to
>> > the "Why is Cygwin so slow???" scenarios if we can help it.
>>
>> I understand your concern for sure ;-)
>>
>> Maybe that's the very thing you're thinking about but ... AFAIK a
>> spinlock is the usual paradigm in scenarios where one doesn't
>> anticipate contention but needs to be aware of it 'just in case'. With
>> InterlockedCompareExchange() and Sleep() it should be quite simple to
>> create one that's very efficient in the usual scenario.
>
>Does the below patch fix this for you?
I really do have a patch sitting in my sandbox. I just forgot to test it
last night.
cgf
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list