- XBT_DEBUG("%s:\n\t progress = %.2f, current_progress = %.2f, incr = %ld, lrint(1) = %ld, lrint(2) = %ld",
- action->file_->name, action->progress_, current_progress, incr,
- lrint(action->progress_ + current_progress), lrint(action->progress_) + incr);
-
- /* take care of rounding error accumulation */
- if (lrint(action->progress_ + current_progress) > lrint(action->progress_) + incr)
- incr++;
-
- action->progress_ += current_progress;
-
- action->storage_->usedSize_ += incr; // disk usage
- action->file_->current_position += incr; // current_position
- // which becomes the new file size
- action->file_->size = action->file_->current_position;
-
- sg_size_t *psize = xbt_new(sg_size_t,1);
- *psize = action->file_->size;
- xbt_dict_t content_dict = action->storage_->content_;
- xbt_dict_set(content_dict, action->file_->name, psize, nullptr);
- }
-
- action->updateRemains(lmm_variable_getvalue(action->getVariable()) * delta);
-
- if (action->getMaxDuration() > NO_MAX_DURATION)
- action->updateMaxDuration(delta);
-
- if (action->getRemainsNoUpdate() > 0 && lmm_get_variable_weight(action->getVariable()) > 0 &&
- action->storage_->usedSize_ == action->storage_->size_) {
- action->finish();
- action->setState(Action::State::failed);
- } else if (((action->getRemainsNoUpdate() <= 0) && (lmm_get_variable_weight(action->getVariable()) > 0)) ||
- ((action->getMaxDuration() > NO_MAX_DURATION) && (action->getMaxDuration() <= 0))) {
- action->finish();
- action->setState(Action::State::done);