Skip to content

Commit 100ed6b

Browse files
committed
perf: optimize package monitoring in helpServer.R
1 parent 4aa5870 commit 100ed6b

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

R/help/helpServer.R

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,20 @@ cat(
3030
sep = ""
3131
)
3232

33-
currentPackages <- NULL
33+
lib_dirs <- .libPaths()
34+
last_mtimes <- file.info(lib_dirs)$mtime
35+
currentPackages <- installed.packages(fields = "Packaged")[, c("Version", "Packaged")]
3436

3537
while (TRUE) {
36-
newPackages <- installed.packages(fields = "Packaged")[, c("Version", "Packaged")]
37-
if (!identical(currentPackages, newPackages)) {
38-
if (!is.null(currentPackages)) {
38+
Sys.sleep(5)
39+
current_mtimes <- file.info(lib_dirs)$mtime
40+
if (!identical(last_mtimes, current_mtimes)) {
41+
newPackages <- installed.packages(fields = "Packaged")[, c("Version", "Packaged")]
42+
if (!identical(currentPackages, newPackages)) {
3943
cat(NEW_PACKAGE_STRING, "\n")
44+
currentPackages <- newPackages
4045
}
41-
currentPackages <- newPackages
46+
last_mtimes <- current_mtimes
47+
gc()
4248
}
43-
Sys.sleep(1)
4449
}

0 commit comments

Comments
 (0)