[Rd] Child thread libR.so

2015-08-20 Thread Ryan C Metzger
So I'm working on a custom front end to R, in one mode of the front end I dynamically load libR.so into a child worker thread. I'm very careful to make sure it is loaded by a single thread and loaded only once, but since it is a child thread it violates assumptions made by the stack size checking i

Re: [Rd] Child thread libR.so

2015-08-24 Thread Ryan C Metzger
I did some poking around with GDB and confirmed that the advice of setting R_CStackLimit after init, which is echoed in the "threading issues" section of the R-exts help document, isn't entirely useful because init apparently loads the main package which trips over the broken stack checking. Stack

Re: [Rd] Child thread libR.so

2015-08-24 Thread Simon Urbanek
Ryan, if you read the piece you quoted from more carefully, you'll notice it says "Rf_initialize_R" - which is quite critical in this matter. Cheers, Simon On Aug 24, 2015, at 9:18 AM, Ryan C Metzger wrote: > I did some poking around with GDB and confirmed that the advice of > setting R_CSta

Re: [Rd] Child thread libR.so

2015-08-25 Thread Ryan C Metzger
Simon, Ah, thank you! quiet right. For anyone searching for this in the future, I changed my init fuction to: -- SNIP void init_r() { SEXP aperm_function; /* this is our version of Rf_initEmbeddedR where we disable stack checking */ const char *init_argv[] = {