[Rd] Ctrl-C of functions that allocated mem
simon.urbanek at r-project.org
Thu Jun 9 02:40:21 CEST 2011
On Jun 8, 2011, at 8:06 PM, oliver wrote:
> what happens, when a function (R-extension in C), that allocated memory
> (strdup(), malloc()/calloc() and so on), and is used in interactive mode, then
> will be stopped via Ctrl-C?
> I would assume that there remains allocated memory,
> which is not usable and also not accessable (hence no
> way to free it).
> Are there any mechanisms in R that could help in rolling
> back the allocation?
Yes, if you read R-exts:
you would know that you're not supposed to use malloc/calloc at all and if you allow interruption ("regular" C code does not) R_alloc does what you asked about.
> Normally in an interactive session "some memory" might not be a problem,
> because it will be run shortly; but I prefer clean solutions.
> And also, if it's much mem, which is allocated each time, and one does many
> trials and Ctr-C's, even an interactive session might eat a lot of mem.
> So I would be interested in a solution to this (potential) problem.
> R-devel at r-project.org mailing list
More information about the R-devel