delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/04/10/08:21:07

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/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
content-class: urn:content-classes:message
MIME-Version: 1.0
Subject: RE: REPOST: unlink semantics
Date: Wed, 10 Apr 2002 22:20:04 +1000
X-MimeOLE: Produced By Microsoft Exchange V6.0.5762.3
Message-ID: <FC169E059D1A0442A04C40F86D9BA76008ACAC@itdomain003.itdomain.net.au>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
From: "Robert Collins" <robert DOT collins AT itdomain DOT com DOT au>
To: "Chris January" <chris AT atomice DOT net>, <cygwin AT cygwin DOT com>
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id g3ACL6o23579


> -----Original Message-----
> From: Chris January [mailto:chris AT atomice DOT net] 
> Sent: Wednesday, April 10, 2002 9:57 PM
> To: cygwin AT cygwin DOT com
> Subject: REPOST: unlink semantics
> 
> 
> With respect to the 'Infinte Loop in "rm -fr"' thread, I 
> believe the current semantics of unlink on Cygwin to be 
> inconsistent with SuSv2.
> 
> SuSv2 specifies the following:

SuS assumes files can be removed/deleted while in use. 

> Cygwin's current implementation of unlink is not consistent 
> with the following part: "If one or more processes have the 
> file open when the last link is removed, the link will be 
> removed before unlink() returns, but the removal of the file 
> contents will be postponed until all references to the file 
> are closed." At present Cygwin delays not only the removal of 
> the file contents, but also the removal of the link (i.e. the 
> directory entry).

Patches to correct this gratefully accepted. Don't forget to test on
win9x and NT4. Also be sure to test what happens when you delete a .dll
out from under a program on win9x.

> As a suggested fix, path_conv::check could 
> returns ENOENT for a file if it appears in the delqueue. 

This introduces it's own problems: what happens when the application
then tries to create a new file with that file name? Do we give it a
random temporary name? What happens when the app then calls a non-cygwin
program with the file name.... oops!

Anyway, food for thought.

Rob

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


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