X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org MIME-Version: 1.0 In-Reply-To: <20091120184906.GA27241@ednor.casa.cgf.cx> References: <4B023172 DOT 5000102 AT a11ysoft DOT com> <4B0611DC DOT 3080002 AT a11ysoft DOT com> <4B061709 DOT 2040507 AT cygwin DOT com> <20091120112052 DOT GT29173 AT calimero DOT vinschen DOT de> <20091120143237 DOT GD18289 AT ednor DOT casa DOT cgf DOT cx> <20091120144958 DOT GW29173 AT calimero DOT vinschen DOT de> <20091120184906 DOT GA27241 AT ednor DOT casa DOT cgf DOT cx> Date: Fri, 20 Nov 2009 14:04:01 -0500 Message-ID: Subject: Re: Use of Dual Core causes random failures building OpenJDK From: mike marchywka To: cygwin AT cygwin DOT com Content-Type: text/plain; charset=ISO-8859-1 X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On 11/20/09, Christopher Faylor wrote: > On Fri, Nov 20, 2009 at 01:19:57PM -0500, mike marchywka wrote: >>On 11/20/09, Corinna Vinschen wrote: >>> On Nov 20 09:32, Christopher Faylor wrote: >>>> On Fri, Nov 20, 2009 at 12:20:52PM +0100, Corinna Vinschen wrote: >>>> >On Nov 20 06:04, mike marchywka wrote: >>>> >> On 11/19/09, Larry Hall (Cygwin) >>>> >> wrote: >>>> >>>Wow! I had a hunch that BLODA could be the cause of the file related >>>> >>>problems but it never occurred to me that it could be screwing up >>>> >>>environment variables too. >>>> >> >>>> >>Anyone care to determine if env updates are not thread safe? >>>> > >>>> >It's indeed not thread safe. Looks like we need some locking... >>>> >>>> What's "it" in this case? putenv? >>> >>> "it" is primarily _addenv, which is used by setenv and putenv. >>> >>>> The putenv() function is not required to be reentrant, and the one in >>>> libc4, libc5 and glibc 2.0 is not, but the glibc 2.1 version is >>> >>> Same for setenv and unsetenv, which don't need to be thread-safe per >>> POSIX. glibc's setenv is thread-safe, though. >>> >>>> I agree that it would be nice to make it safer but is there really code >>>> here which is updating the environment in separate threads? >>> >>> And given POSIX, if so, it would be an application bug if the application >>> doesn't care by itself to use setenv/getenv in a thread-safe manner. >> >>Why does the OS let this happen? I thought windoze should avoid >>garbage. > > Er, I think you're a little confused about what we're talking about. The > OS doesn't enforce thread safety. There's really no way that it can. We are talking about windoze env variables right? I did ask previously I thought. The OS is the only place you can when the threads are in different processes unknown to each other. Or, can two different processes share the same thread? I guess my point is that there is nothing cygwin can do if windoze doesn't do it. But, that was why I asked what the OP was actually complaining about. In may case, IIRC, I got garbage in the windoze variables rather than just some from process A and some from process B. > -- -- 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