X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Sat, 21 Nov 2009 14:47:07 +0100 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: Use of Dual Core causes random failures building OpenJDK Message-ID: <20091121134707.GC29173@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <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> <20091121121218 DOT GZ29173 AT calimero DOT vinschen DOT de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) 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 Nov 21 08:16, mike marchywka wrote: > On 11/21/09, Corinna Vinschen wrote: > > On Nov 20 14:04, mike marchywka wrote: > >> 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? > > > > No, never. If there is a concurrency problem with the envionment, it's > > between threads of the same process. In that case, we can make getenv, > > setenv and friends thread-safe, but it's still actually a problem of the > > application, given that getenv, setenv and friends are not thread-safe > > per POSIX. See > > http://www.opengroup.org/onlinepubs/9699919799/functions/setenv.html > > http://www.opengroup.org/onlinepubs/9699919799/functions/getenv.html > > http://www.opengroup.org/onlinepubs/9699919799/functions/unsetenv.html > > > > well, the question was somewhat rhetorical/disingenuous but > I don't see how in the general case then the OS can allow two > simultaneous processes to modify windoze env variables in a way > that corrupts them. The app is responsible for itself but I'm not sure > what it can do with respect to other processes. If you wanted an emulation > layer to be safe you are still limited by the OS( but you may have already > known that LOL). The environment, even the so-called Windows environment, is just a memory blob in the application's memory space. It's not shared between processes or something, only inherited. If it's corrupted, the reason is that the environment has been scrambled in this process, or in one of the parent processes prior to the fork/exec calls. The OS has usually nothing to do with that, and as far as the Windows environment of a process is concerned, the Windows system calls to change the environment *are* thread-safe. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- 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