Я создал пакет R, который зависит от Rcpp. Функция в этом пакете должна отображать операторы печати на каждых n итерациях. Поэтому я ожидаю увидеть новую строку в консоли R каждые несколько секунд.
Странно то, что когда я запускаю свою функцию в графическом интерфейсе R, курсор становится загрузочным колесом, и R «почти» зависает. Колесо загрузки исчезает один раз после завершения вычисления.
Минимальный пример этой ситуации резюмируется следующим образом:
library(inline)
library(Rcpp)
test <- cxxfunction(
signature(),
body= '
RNGScope scope;
for (int i = 0; i < 100; i++)
{
sleep(1); // sleep one second at each iteration. this sleep is
// replaced by something in my code
if (i%20==0) Rprintf("\v%d iterations are done...",i);
}
return wrap(1);
' ,
plugin="Rcpp"
)
test()// freeze for 100 seconds!
Я также обнаружил, что если код запускается на терминале, новые строки появляются каждые 20 секунд, как я и ожидал. Но я предпочитаю запускать его на R GUI.
Буду признателен, если кто-нибудь скажет мне, почему это происходит.
Я использую Mac.