On 4/27/25 22:19, Duncan Murdoch wrote:

BTW, the help for setTimeLimit() says that the time limit check happens frequently during `Sys.sleep()`, but that doesn't appear to be true. I've tried a variation on the code above which sleeps for 20 seconds, even with a time limit of 1 second.

Regarding base R, this works for me in Linux:

> setTimeLimit(elapsed=10)
> for(i in 1:1000) Sys.sleep(0.1)
Error in Sys.sleep(0.1) : reached elapsed time limit

That is,  the loop gets interrupted after about 10s.

Reading the code of R, there is a check in Sys.sleep(), but only after the first wait (in a loop, iteratively waiting for the required duration). When polled events are not active, the first wait is the whole duration.

I would read the documentation of ?setTimeLimit as that the check happens during Sys.sleep(), but not necessarily frequently, that "frequently" only refers to R code. And then the documentation would seem correct (or at least not contradicted). On the other hand, right, we could change Rsleep() to use a shorter sleep when elapsed time limit is in place, and that wouldn't contradict the documentation, either.

Best
Tomas



Duncan Murdoch

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to