On 07/07/2009 8:36 PM, Henrik Bengtsson wrote:
Is it possible to (i) clear or (ii) override already registered
finalizer functions, e.g. reg.finalizer(e, f, add=FALSE) cf.
on.exit(..., add=FALSE)?
No, but you can have the finalizer function call something else, and
change the thing it calls. E.g.
reg.finalizer(env, function (...) CleanUp(...))
will call CleanUp in the global environment (the environment of the
anonymous finalizer); change that function and the cleanup behaviour
will change.
Duncan Murdoch
Currently:
env <- new.env()
reg.finalizer(env, function(...) cat("Finalizer A!\n"))
NULL
reg.finalizer(env, function(...) cat("Finalizer B!\n"))
NULL
reg.finalizer(env, function(...) cat("Finalizer C!\n"))
NULL
gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 115827 3.1 350000 9.4 350000 9.4
Vcells 77109 0.6 786432 6.0 370917 2.9
rm(env)
gc()
Finalizer C!
Finalizer B!
Finalizer A!
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 115932 3.1 350000 9.4 350000 9.4
Vcells 77648 0.6 786432 6.0 370917 2.9
I wish to have only finalizer "C" to run.
/Henrik
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel