www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2009/07/21/10:17:30

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Date: Tue, 21 Jul 2009 10:17:04 -0400
From: Christopher Faylor <cgf-use-the-mailinglist-please AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: close on exec atomics
Message-ID: <20090721141704.GA26490@ednor.casa.cgf.cx>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
References: <4A65BCC9 DOT 1020002 AT byu DOT net> <20090721135848 DOT GA2600 AT calimero DOT vinschen DOT de> <20090721140502 DOT GA11240 AT calimero DOT vinschen DOT de>
MIME-Version: 1.0
In-Reply-To: <20090721140502.GA11240@calimero.vinschen.de>
User-Agent: Mutt/1.5.20 (2009-06-14)
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
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 Tue, Jul 21, 2009 at 04:05:02PM +0200, Corinna Vinschen wrote:
>On Jul 21 15:58, Corinna Vinschen wrote:
>> On Jul 21 07:04, Eric Blake wrote:
>> > -----BEGIN PGP SIGNED MESSAGE-----
>> > Hash: SHA1
>> > 
>> > It seems like it would be pretty easy to add several new close-on-exec
>> > features required by POSIX 2008:
>> > 
>> > open(name, O_RDONLY | O_CLOEXEC);
>> > // skips the need to use fcntl
>> > 
>> > fcntl(fd, F_DUPFD_CLOEXEC);
>> > // like F_DUPFD, but closes window without having to use
>> > // fcntl(fd, F_SETFD, fcntl(fd, F_GETFD))
>> > 
>> > and those provided by glibc as extensions:
>> > 
>> > fopen(name, "re");
>> > // like fopen "r", but with cloexec set
>> > 
>> > The argument is that in multi-threaded apps, if one thread opens a file
>> > but has not yet turned on the close-on-exec bit while another thread does
>> > a fork-and-exec, then you leaked the fd into the child; and these new
>> > flags close the window.
>> > 
>> > Should I go ahead and prepare a patch for the newlib side?
>> 
>> It's not that easy to implement, especially not the fcntl which requires
>> to redefine the dup2 methods throughout to allow atomic operation on the
>> target OS handles.  open (O_CLOEXEC) is much easier.  Anyway, can we
>> wait until after Cygwin 1.7.1?
>
>...which is to say, I added it to my TODO list.

I agree about waiting, but I think this is one for my TODO list.  The
close_on_exec code is all mine, AFAIK.  I reworked it all back in 1998
or so, so it is pretty fresh in my mind.

Coincidentally, enough, I've been thinking about reworking it lately
after having to deal with it for firos.

cgf

--
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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019