Mail Archives: cygwin/2009/11/21/08:48:16
On Nov 21 08:16, mike marchywka wrote:
> On 11/21/09, Corinna Vinschen <corinna-cygwin AT cygwin DOT com> 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
- Raw text -