[darcs-users] DeleteFile on Windows (was: Re: hashed-storage work now merged in (woo!))
zooko at zooko.com
Thu Oct 8 23:13:27 UTC 2009
On Thursday,2009-10-08, at 16:47 , Jason Dagit wrote:
> This appears to assume:
> * On windows you can move a file even if it is open
Not generally, no. The same rule that prevents you from deleting an
open file also prevents you from moving it.
The idiom I use is "If you're letting a finalizer do something, that
means you don't really care if it never gets done." (credit to JP
Calderone for teaching me this).
So, instead I have an explicit "clean up this thing" procedure that I
call when I know I'm done with the resource, and as an additional
"belt and suspenders" I sometimes have a finalizer that invokes that
explicit cleanup procedure.
This means that you have to figure out whether something else is also
using the same resource, in case that something else isn't done with
it. This doesn't turn out to be hard in practice.
The general moral is that garbage collection is great for managing
resources that are entirely inside the programming language runtime,
e.g. non-shared memory, but not great for managing resources that
have to be shared with things outside of the programming language
runtime, e.g. files.
More information about the darcs-users