Re: [Rd] on.exit called on loading ?

From: Dirk Eddelbuettel <edd_at_debian.org>
Date: Tue 16 Jan 2007 - 22:12:43 GMT

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
Received on Wed Jan 17 09:15:49 2007

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Thu 18 Jan 2007 - 12:31:04 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.