This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Cygwin 1.7: Concurrency Issue with Shared State Initialization


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.

Regards, Oliver

--
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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]