On Mar 25, 2009, at 21:04 , Brant Inman wrote:


R for MAC experts:

When using the current version of R for MAC, I notice a troublesome behavior. Sometimes I need to build complex regression models (usually using lmer) or simulations that take 10 minutes or more for the computer to compute. While this computing is going on, I would like to be able to take advantage of this "free time" to write more code. But I can't! In my current setup of R for MACs the script editor is frozen while the console is computing. That means that my only recourse is to go for a 10 minute coffee or to the toilet. I don't believe that my windows version of R has this same problem.

My question: Is there a way to set R for MAC up so that the script editor window is functional while the console window in chomping away at some calculations?


The current GUI is running in the same event loop as R in order to allow R to use UI elements directly. This implies that if some C code in R hogs the CPU without allowing UI events to be processed, it will block the whole UI including the editor. "Good" packages won't do that since R provides R_CheckUserInterrupt() call to prevent this from happening, but apparently some still do.

Although there is a draft of a GUI that runs R on a separate thread from the GUI, but it opens up a whole can of worms since all access to system libraries needs to be scheduled on the main thread. Since R has no provision for that, it would make it likely that packages will violate this rule thus making R unstable, especially since it's OS- specific. Unfortunately UIs on OS X have to run on the main thread, so we cannot run R on the main thread and the GUI on a separate thread. Therefore the best we can currently do is to rely on packages to check events during long computations in C code. Note that this is not an issue in pure R code because R makes sure the check are done.

Cheers,
Simon

_______________________________________________
R-SIG-Mac mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to