diff --git a/src/CCubes.c b/src/CCubes.c index 248fe1a..9805d5a 100755 --- a/src/CCubes.c +++ b/src/CCubes.c @@ -233,7 +233,13 @@ SEXP CCubes(SEXP tt) { int n_tasks_batch = 512; for (int task = 0; task < n_tasks; task+=n_tasks_batch) { /* adjust if batch size is larger than total job size */ - int current_batch = n_tasks < n_tasks_batch ? n_tasks : n_tasks_batch; + int current_batch = n_tasks_batch; + /* single batch */ + if (n_tasks < n_tasks_batch) + current_batch = n_tasks; + /* last batch */ + if (n_tasks - task < n_tasks_batch) + current_batch = n_tasks - task; log_debug("ccubes", "Tasks %d - %d out of %d", task, task + current_batch - 1, n_tasks);