Skip to content

Conversation

@ChadliaJerad
Copy link
Collaborator

This is PR enables the support of transient federates, introduced in this discussion.
This is still a work in progress. The PR is meant for checking backward compatibility using the CI.

This branch works with transient-federates branch of lingua-franca. Currently:

  • every federate instance stores its persistence status (is_transient), and records its own start_time.
  • The RTI distinguishes the startup phase (where all persistent federates have to join in order to start the execution), from the one after, where only transient federates can join and leave at arbitrary times.
  • when a transient joins during the startup phase, its start_time is set along with the persistent federates. If, however, it joins after the startup phase, its start_time will be:
    1. either the physical time at which it joined, if it has no upstream or downstream federates,
    2. or the maximum among the Next Event Tags (ignoring the microstep) of its upstream and downstream federates, otherwise.
  • test/C/src/federated/transient/Timers.lf showcases 1.
  • An example that showcases 2. is WIP.

The semantics will further be detailed in discussion.

@ChadliaJerad ChadliaJerad marked this pull request as draft April 13, 2023 00:20
…e upstream federates to set the strt_time of a transient federate. Warning: the message_tag_is_in_the_future is changed!
… upstreams and its physical joinin time. A constant delay to the start time is added + Fix the corner case of sending the first TAG to a joining transient, where there upstream is only one transient that is not connected yet (was generating a warning)
…, not the transient's effective_start_time"

This reverts commit 25beb95.
@ChadliaJerad
Copy link
Collaborator Author

Closed as replaced with #358.

@ChadliaJerad ChadliaJerad deleted the transient-federates branch February 20, 2024 21:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants