diff --git a/core/federated/federate.c b/core/federated/federate.c index 1e4547e8d8..0d28b26386 100644 --- a/core/federated/federate.c +++ b/core/federated/federate.c @@ -1928,7 +1928,7 @@ void update_max_level(tag_t tag, bool is_provisional) { environment_t *env; _lf_get_environments(&env); max_level_allowed_to_advance = INT_MAX; - LF_PRINT_DEBUG("last_TAG=" PRINTF_TIME, tag.time); + LF_PRINT_DEBUG("last_TAG=" PRINTF_TIME ", %lld, (%d)", tag.time, (long long) tag.microstep, (int) is_provisional); if ((lf_tag_compare(env->current_tag, tag) < 0) || ( lf_tag_compare(env->current_tag, tag) == 0 && !is_provisional )) { diff --git a/core/threaded/reactor_threaded.c b/core/threaded/reactor_threaded.c index 2f336d662a..d49d855716 100644 --- a/core/threaded/reactor_threaded.c +++ b/core/threaded/reactor_threaded.c @@ -456,7 +456,7 @@ void _lf_next_locked(environment_t *env) { // federates. If an action triggers during that wait, it will unblock // and return with a time (typically) less than the next_time. tag_t grant_tag = send_next_event_tag(env, next_tag, true); // true means this blocks. - while (lf_tag_compare(grant_tag, next_tag) < 0) { + while (lf_tag_compare(grant_tag, env->current_tag) <= 0) { next_tag = get_next_event_tag(env); grant_tag = send_next_event_tag(env, next_tag, true); }