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.
Regards, Zooko _______________________________________________ darcs-users mailing list [email protected] http://lists.osuosl.org/mailman/listinfo/darcs-users
