@@ -324,13 +324,19 @@ make_progression_handler <- function(name, reporter = list(), handler = NULL, en
324324 times <- max(times , 1L )
325325 interval <- interval * intrusiveness
326326
327+ # # Milestone steps that need to be reach in order to trigger an
328+ # # update of the reporter
327329 milestones <<- if (times == 1L ) {
328330 c(max_steps )
329331 } else {
330332 seq(from = 1L , to = max_steps , length.out = times )
331333 }
334+
335+ # # Timestamps for when steps where reached
336+ # # Note that they will remain NA for "skipped" steps
332337 timestamps <<- rep(as.POSIXct(NA ), times = max_steps )
333338 timestamps [1 ] <<- Sys.time()
339+
334340 step <<- 0L
335341 message <<- character (0L )
336342 if (debug ) mstr(list (finished = finished , milestones = milestones ))
@@ -351,6 +357,8 @@ make_progression_handler <- function(name, reporter = list(), handler = NULL, en
351357 if (length(msg ) > 0 ) message <<- msg
352358 timestamps [step ] <<- Sys.time()
353359 if (debug ) mstr(list (finished = finished , step = step , milestones = milestones , prev_milestone = prev_milestone , interval = interval ))
360+
361+ # # Only update if a new milestone step has been reached
354362 if (length(milestones ) > 0L && step > = milestones [1 ]) {
355363 skip <- FALSE
356364 if (interval > 0 ) {
@@ -368,8 +376,6 @@ make_progression_handler <- function(name, reporter = list(), handler = NULL, en
368376 if (debug ) mstr(list (type = " finish (auto)" , milestones = milestones ))
369377 finish_reporter(p )
370378 }
371- } else {
372- update_reporter(p )
373379 }
374380 .validate_internal_state(sprintf(" handler(type=%s) ... end" , type ))
375381 } else {
0 commit comments