From hb at biostat.ucsf.edu  Fri Mar 11 21:11:35 2011
From: hb at biostat.ucsf.edu (Henrik Bengtsson)
Date: Fri, 11 Mar 2011 12:11:35 -0800
Subject: [Rd] hook for when R quits
In-Reply-To: <alpine.LFD.2.02.1103111905540.22619@gannet.stats.ox.ac.uk>
References: <AANLkTi=6WYeM-xfqWAxbFNDT83BadEL=mifG26t5ZacN@mail.gmail.com>
	<AANLkTinJPXGWswSpQ-9d8UEzYJW_zU4hAjViNNXWtbUh@mail.gmail.com>
	<AANLkTinRW0h_U_27g95RnkcsAdWJ1-vKzW5YJ3JTJ_f-@mail.gmail.com>
	<4D7A6F8C.5010904@gmail.com>
	<alpine.LFD.2.02.1103111905540.22619@gannet.stats.ox.ac.uk>
Message-ID: <AANLkTim_wWk63CTXjfvc85fB52M1OzhhkY1DAxx=74sP@mail.gmail.com>

On Fri, Mar 11, 2011 at 11:07 AM, Prof Brian Ripley
<ripley at stats.ox.ac.uk> wrote:
> On Fri, 11 Mar 2011, Duncan Murdoch wrote:
>
>> On 11/03/2011 1:37 PM, Michael Lawrence wrote:
>>>
>>> Thanks for the suggestion, but I don't think that R finalizes all of its
>>> objects when it quits. At least a simple test suggests that on Linux.
>>
>> Did you use onexit=TRUE? ?On Windows that appears to work...

Agree - here an object finalizer is more appropriate (different from
an end-of-session hook).

>
> It does work: RODBC makes extensive use of it, for exactly the purpose you
> describe (or rather, the C_level equivalent of 'it').

In help(reg.finalizer) it says:

  'onexit': logical: should the finalizer be run if the object is
still uncollected at the end of the R session?

What environments, objects, search path etc are available when the
finalizer is called this way when R exits?  Is safe to always add
'onexit=TRUE' (which now defaults to FALSE), or should I expect an
"exceptional" R system that the finalizer needs to account for?

Is there any further documentation on what happens when an R session
shuts down and in which order?

/Henrik

>
>>
>> Duncan Murdoch
>>
>>> Michael
>>>
>>> On Fri, Mar 11, 2011 at 10:19 AM, Jeffrey
>>> Ryan<jeffrey.ryan at lemnica.com>wrote:
>>>
>>> > ?Take a look at reg.finalizer. ?You'd have to create an object
>>> > ?internally that would persist until R exits - and a related function
>>> > ?to handle cleanup of course.
>>> >
>>> > ?HTH
>>> > ?Jeff
>>> >
>>> > ?On Fri, Mar 11, 2011 at 12:08 PM, Michael Lawrence
>>> > ?<lawrence.michael at gene.com> ?wrote:
>>> > ?> ?Hi,
>>> > ?>
>>> > ?> ?Is there any way that a package can listen for when R quits? The Qt
>>> > stuff
>>> > ?is
>>> > ?> ?hooking into platform-specific event loops and when those die
>>> > ?unexpectedly
>>> > ?> ?(from the perspective of Qt), it aborts, causing an annoying error
>>> > ?dialog.
>>> > ?> ?If we could catch when R is killed, we could cleanup, like we do
>>> > with
>>> > ?> ?.onUnload.
>>> > ?>
>>> > ?> ?Thanks,
>>> > ?> ?Michael
>>> > ?>
>>> > ?> ? ? ? ? [[alternative HTML version deleted]]
>>> > ?>
>>> > ?> ?______________________________________________
>>> > ?> ?R-devel at r-project.org mailing list
>>> > ?> ?https://stat.ethz.ch/mailman/listinfo/r-devel
>>> > ?>
>>> >
>>> >
>>> >
>>> > ?--
>>> > ?Jeffrey Ryan
>>> > ?jeffrey.ryan at lemnica.com
>>> >
>>> > ?www.lemnica.com
>>> >
>>>
>>> ? ? ? ?[[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>
> --
> Brian D. Ripley, ? ? ? ? ? ? ? ? ?ripley at stats.ox.ac.uk
> Professor of Applied Statistics, ?http://www.stats.ox.ac.uk/~ripley/
> University of Oxford, ? ? ? ? ? ? Tel: ?+44 1865 272861 (self)
> 1 South Parks Road, ? ? ? ? ? ? ? ? ? ? +44 1865 272866 (PA)
> Oxford OX1 3TG, UK ? ? ? ? ? ? ? ?Fax: ?+44 1865 272595
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



[Rd] hook for when R quits
Henrik Bengtsson