Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin-developers AT sources DOT redhat DOT com Message-ID: <016f01c0c676$fde381c0$0200a8c0@lifelesswks> From: "Robert Collins" To: "Trevor Forbes" , "Cygwin-developers" References: <037701c0c3ab$9049bf30$0200a8c0 AT lifelesswks> <20010413221222 DOT C5606 AT dothill DOT com> <006001c0c4af$179b79c0$0200a8c0 AT lifelesswks> <20010414223139 DOT A906 AT redhat DOT com> <001701c0c557$02a861b0$0200a8c0 AT lifelesswks> <20010415090600 DOT A8359 AT redhat DOT com> <001301c0c5af$9cb7e520$0200a8c0 AT lifelesswks> <20010415153317 DOT C9015 AT redhat DOT com> <013b01c0c613$53cdac00$0200a8c0 AT lifelesswks> <20010415222520 DOT E10309 AT redhat DOT com> <035e01c0c675$c2c11180$0200a8c0 AT voyager> Subject: Re: dll_entry [was Re: fork expert needed: (was .....]) Date: Mon, 16 Apr 2001 23:13:11 +1000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-OriginalArrivalTime: 16 Apr 2001 13:05:52.0907 (UTC) FILETIME=[F7501DB0:01C0C675] ----- Original Message ----- From: "Trevor Forbes" To: "Cygwin-developers" Sent: Monday, April 16, 2001 11:04 PM Subject: dll_entry [was Re: fork expert needed: (was .....]) > ----- Original Message ----- > From: "Christopher Faylor" > > > > > Robert Collins wrote: > > >Also while MSDN states that only one thread at a time can call the > > >entry point function, it does not state or imply that other threads are > > >suspended during that process. > > > > Ok, I reluctantly stand corrected. I thought that both the MSDN and > > my own personal experience (waiting for a signal from Cygwi's signal > > thread that never arrived) said this. I couldn't find any reference > > to this, though. > > Moved thread location..... > > The system serializes calls to the dll entry point function and "it > suspends" the other related threads during the process. > (Jeffery Richer - Microsoft Press) I believe that means that if (say) 3 threads (whether in the same process or not) simultaneously attach to a single dll, two of the three threads are blocked while they wait to run the dll entry point function. That's not the scenario we were discussing. Still, a test case will demonstrate it wiether way quite quickly. *** More importantly, we're not in cygwin's dll entry point, so that is irrelevant to us. We may cause other dll entry point functions to run as we call LoadLibrary multiple times (once for each dll the parent had attached to before fork was called). *** > The attached patch can avoid the bottleneck but it may introduce new/old > problems. It won't avoid the issue we're looking at :[ Other than that, no comment from this corner - too ignorant of cygwin's needs in that area at the moment. Rob