Skip to content

Commit

Permalink
Make immediately return when we have already passed the target physic…
Browse files Browse the repository at this point in the history
…al time
  • Loading branch information
byeonggiljun committed Jan 30, 2025
1 parent f9081b1 commit 98b1090
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 4 deletions.
5 changes: 2 additions & 3 deletions core/threaded/reactor_threaded.c
Original file line number Diff line number Diff line change
Expand Up @@ -199,9 +199,8 @@ bool wait_until(instant_t wait_until_time, lf_cond_t* condition) {
LF_PRINT_DEBUG("-------- Waiting until physical time " PRINTF_TIME, wait_until_time - start_time);
// Check whether we actually need to wait, or if we have already passed the timepoint.
interval_t wait_duration = wait_until_time - lf_time_physical();
if (wait_duration < MIN_SLEEP_DURATION) {
LF_PRINT_DEBUG("Wait time " PRINTF_TIME " is less than MIN_SLEEP_DURATION " PRINTF_TIME ". Skipping wait.",
wait_duration, MIN_SLEEP_DURATION);
if (wait_duration < 0) {
LF_PRINT_DEBUG("We have already passed " PRINTF_TIME ". Skipping wait.", wait_until_time);
return true;
}

Expand Down
4 changes: 3 additions & 1 deletion include/core/threaded/reactor_threaded.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,9 @@ void lf_synchronize_with_other_federates(void);
* if that event time matches or exceeds the specified time.
*
* The mutex lock associated with the condition argument is assumed to be held by
* the calling thread.
* the calling thread. This mutex is released while waiting. If the current physical
* time has already passed the specified time, then this function
* immediately returns true and the mutex is not released.
*
* @param env Environment within which we are executing.
* @param wait_until_time The time to wait until physical time matches it.
Expand Down

0 comments on commit 98b1090

Please sign in to comment.