[R-pkg-devel] Best current way to hook into the event loop?

Simon Urbanek @|mon@urb@nek @end|ng |rom R-project@org
Fri Feb 3 01:24:53 CET 2023


Duncan,

I don't know if it is best, but you can have a look at "background"[1] which is I believe what "later" was inspired by. It is a very minimal example so should give you ideas on how to do that in your package - it runs the R code on the main thread so it should be as close to safe as one can get with asynchronous calls, just beware of reentrance. In your case I suspect that you may already have an X11 fd that you can use in the unix handler - not sure what signaling you need on Windows, though.

Cheers,
Simon

[1] - https://github.com/s-u/background


> On Feb 3, 2023, at 10:53 AM, Duncan Murdoch <murdoch.duncan using gmail.com> wrote:
> 
> I'm updating low level stuff in the rgl package.  I'm exploring using the GLFW library to handle low level stuff instead of trying to do that myself.
> 
> Currently rgl has fairly ugly code to link into the R event loop.  (It needs to do this so that it hears about mouse movement, etc.)  I'm hoping that someone else has written better code than I could to do this.  Is there a currently recommended way to hook into the loop?
> 
> The kinds of things I need are getting events fairly frequently (e.g. 0.03 second delay if things aren't too busy) for code that doesn't involve R at all.
> 
> I will also occasionally want to call back into R; I don't really mind if there's a bigger delay to wait for that to be safe.
> 
> I've seen the "later" package:  it looks as though it might do what I need, but the protection for R code seems to be all or nothing, i.e. if I want to evaluate an R expression nothing else can be running, or if I want action while R code is running, I can't involve R at all.
> 
> Duncan Murdoch
> 
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
> 



More information about the R-package-devel mailing list