X-Spam-Check-By: sourceware.org Message-ID: Date: Tue, 20 Jun 2006 11:22:37 -0400 From: "Lev Bishop" To: cygwin AT cygwin DOT com Subject: Re: Unable to delete directory in Cygwin In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <1F211FE03383644EAA6BB7A52FCD9B9B0927A4 AT sohm DOT kpit DOT com> <4491562C DOT 4020702 AT byu DOT net> <4496F86C DOT 9050707 AT cygwin DOT com> Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk 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 6/19/06, mwoehlke wrote: > Larry Hall (Cygwin) wrote: > > mwoehlke wrote: > >> Eric Blake wrote: > >>> That said, cygwin does try to emulate linux, and if someone were to > >>> contribute a patch that would allow cygwin to emulate directory deletion > >>> if it knows that all open handles have also been scheduled for unlinking > >>> at process end, then http://cygwin.com/acronyms/#PTC. > >> > >> Not a patch, but for the record, it looks like Interix solves this > >> problem (http://www.interopsystems.com/tools/tm.aspx?m=9403). Maybe > >> Cygwin could do something similar? > >> > >> (And in case that link dies; apparently Interix has a special 'temp' > >> directory where "unlinked" files are sent until their handles are all > >> closed.) > > > > If you take a look at the cygwin sources, you'll see that Cygwin does > > something similar already. This does not solve the problem for those > > that want to unlink and immediately recreate the unlinked entry though... > > I'm confused. As I read the post, if I create a file 'bar' in '/foo', > open the file, and then 'rm -rf /foo', I can't do that. If Cygwin > "magically redirects" 'bar' to some special place, wouldn't that > a: allow me to unlink '/foo' > b: allow me to then create a new (and different) '/foo/bar'? Yes, in both cases. However, cygwin doesn't do this magic redirection. What it does do, as far as I understand it, is that it adds files that have deletion syscalls called on them to a pending-deletion list, returns success to the deleter, and then deletes the file at the first chance it gets. I had a go at making a "magic redirection" patch a while ago, but never got it into submittable form. > I also do not see anywhere that the OP is even trying to do [b]. With the current cygwin, you don't get that far, since the file bar still exists until it's no longer in use, and the pending-delete stuff doesn't happen for directories. Take a look at winsup/cygwin/delqueue.cc , especially the initial FIXME comment.... L -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/