[Rd] SIGSEGV in R_RunWeakRefFinalizer, object allocated with Rcpp

Tomas Kalibera tom@@@k@liber@ @ending from gm@il@com
Thu Aug 9 21:11:59 CEST 2018

On 9.8.2018 20:58, Dirk Eddelbuettel wrote:
> On 9 August 2018 at 20:37, Tomas Kalibera wrote:
> | So to answer your original question, this could probably be handled in
> | Rcpp,
> Hm. Why do you say that / what did you have in mind?
> Recall that we do not alter SEXPs or introduce additional additional
> reference counters -- because we do not think that altering the basic R API
> for such calls would be a wise strategy.  So we do more or less what is done
> in C for R, with some additional hand-holding which circumvents a number of
> common errors.
Well if you wanted to support unloading - and I am not at all asking for 
that - you could keep R objects (weak references, external pointers) 
with C finalizers in some list and then unconditionally run or clear the 
finalizers in your R_unload, something like Luke does in his example 


> | but in either case I would not use dyn.unload() in the first
> | place. This problem may be just one of many.
> I think I'd second that. I never had much unloading packages or dynamic
> libraries and tend to "just say no". Both short-lived processes (ie via 'r')
> as well as long sessions (ie R via ESS, running for weeks) work for my
> workflows.
> Dirk

More information about the R-devel mailing list