On 16 January 2007 at 16:39, Duncan Murdoch wrote: | On 1/16/2007 4:02 PM, Dirk Eddelbuettel wrote: | > I just found out that an .onLoad() function such as this stylized one (where | > I just renamed some identifiers) | > | > | > .onLoad <- function(lib, pkg) { | > require(zoo, quiet=TRUE, warn.conflicts=FALSE) | > library.dynam("foolib", pkg, lib ) | > if (.Platform$OS.type != "windows") { | > initSomeServices() | > } | > if (.Platform$OS.type != "windows") { | > on.exit(closeSomeServices()) | > } | > } | > | > actually triggers a call of 'closeSomeServices()'. I am probably | > misunderstanding something here -- but I thought on.exit() would only be | > called on, well, exit ? | | It's the exit from the function, not the exit from the package (which | isn't really all that well defined -- do you mean unloading, exit from | R, detaching??
Thanks to Robert (off-list), Henrik and Duncan -- I had indeed forgotten / confused what on.exit() is for. Works as advertised here, but that wasn't what I wanted at the time. Entirely my bad. | It's not very easy to have something be guaranteed to execute "when | you're done". The RODBC package does it using an external pointer, | which has a hook that is called when R shuts down. If it's good enough | to execute on unloading but skip execution on shutdown, then .onUnload | is available. Yes, I am dealing with a moderately more complicated situation (of subscribing to some stateful internal 'services') and had not found .onUnload to be as reliable as I had hoped. But that's another issue. Thanks again, Dirk -- Hell, there are no rules here - we're trying to accomplish something. -- Thomas A. Edison ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel