Почему вызов dyn.load в цикле for приводит к сбою моего сеанса R?
R (3.3.2, Windows 7) падает примерно после 1000 итераций dyn.load()
используется в для цикла. Этого не происходит в Ubuntu. Такое поведение наблюдается для dll
файлы, созданные из Rcpp
а также TMB
код, но я не думаю, что это связано ни с одним из этих пакетов. Сообщение о сбое:
Problem Event Name: APPCRASH
Application Name: rsession.exe
Application Version: 1.0.136.0
Application Timestamp: 583f5668
Fault Module Name: testRcppRepeatDynLoad.dll
Ниже приведен минимальный воспроизводимый пример на моем компьютере:
Сначала создайте Rcpp
пакет называется testRcppRepeatDynLoad
(в Rstudio создайте пакет в новом каталоге, выберите "создать пакет с помощью Rcpp".). Сборка пакета с CTRL-SHIFT-B
создает dll
файл в src
папка, которую мы будем загружать используя dyn.load
,
Этот код завершает сеанс R после 1050 итераций:
while (i < 2000) {
i = i + 1
print(i)
dyn.load('src/testRcppRepeatDynLoad.dll')
dyn.unload('src/testRcppRepeatDynLoad.dll')
}
То же самое происходит для dll
файл создан TMB::compile
,