X-Recipient: archive-cygwin@delorie.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.5000102@a11ysoft.com> <4B0611DC.3080002@a11ysoft.com> 	 <4B061709.2040507@cygwin.com> 	 <b0ddfae80911200304l4f23bca2ha548ee1030a7816b@mail.gmail.com> 	 <20091120112052.GT29173@calimero.vinschen.de> 	 <20091120143237.GD18289@ednor.casa.cgf.cx> 	 <20091120144958.GW29173@calimero.vinschen.de> 	 <b0ddfae80911201019m4832a7f9k684b502b52a05ce3@mail.gmail.com> 	 <20091120184906.GA27241@ednor.casa.cgf.cx>
Date: Fri, 20 Nov 2009 14:04:01 -0500
Message-ID: <b0ddfae80911201104g705e4a1bkb2bd526a50eb8ea2@mail.gmail.com>
Subject: Re: Use of Dual Core causes random failures building OpenJDK
From: mike marchywka <marchywka@gmail.com>
To: cygwin@cygwin.com
Content-Type: text/plain; charset=ISO-8859-1
X-IsSubscribed: yes
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
Precedence: bulk
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie.com@cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com

On 11/20/09, Christopher Faylor
<cgf-use-the-mailinglist-please@cygwin.com> 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) <reply-to-list-only-lh@cygwin.com>
>>>> >> 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

