From murdoch at stats.uwo.ca  Mon Apr 10 15:48:10 2006
From: murdoch at stats.uwo.ca (Duncan Murdoch)
Date: Mon, 10 Apr 2006 09:48:10 -0400
Subject: [Rd] Run package code on R shutdown?
In-Reply-To: <Pine.LNX.4.64.0604101107320.22272@gannet.stats.ox.ac.uk>
References: <4439A4F2.3040708@stats.uwo.ca>
	<Pine.LNX.4.64.0604101107320.22272@gannet.stats.ox.ac.uk>
Message-ID: <443A621A.4070803@stats.uwo.ca>

On 4/10/2006 6:16 AM, Prof Brian Ripley wrote:
> On Sun, 9 Apr 2006, Duncan Murdoch wrote:
> 
>> I'm sure I've seen this discussed before, but haven't been able to find
>> it.  I'd like some package code to be run when R is shut down
>> (approximately when a user's .Last function would be run), to clean up
>> properly.  What is the best way to do this?
> 
> The only way I know to do this is to use a finalizer, as we don't run
> .Last.lib on shutdown.  (That's how RODBC does it.)
> 
> Now, as I recall this cannot be done from reg.finalizer, only from the 
> C-level R_RegisterCFinalizerEx, which has an optional argument to ensure 
> that the finalizer is run 'onexit'.   (I have never understood why we have 
> that restriction, nor why reg.finalizer is primitive and not .Internal.)

Thanks!

Duncan Murdoch



[Rd] Run package code on R shutdown?
Duncan Murdoch