Replies: 3 comments 7 replies
-
Perhaps a more generic |
Beta Was this translation helpful? Give feedback.
-
I have done some more thinking and I have come to the following conclusion: If the connection status on an input or output port changes, an event should be created and put on the event queue with the earliest possible unique tag, this event will trigger the catch-handler. A unique tag is a tag where no other reactions execute. If a status change occurs at time T, and produces an event with time t. Then any input events arriving on the associated connection with tag less than or equal to Why do we need a unique tag? We need a unique tag because we want two contradictory things:
So these two requirements cant be reconciled. Thus I propose to reserve a special microstep index for catch handlers. E.g. UINT32_MAX. This will ensure that both 2 requirements above are satisfied. |
Beta Was this translation helpful? Give feedback.
-
Had an interesting discussion with Edward yesterday where we concluded that:
Some more questions:
I still think it might be reasonable to trigger the catch handler associated with a reaction if
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Since we are targeting distributed systems, we must have a strategy for handling node failures and network failures. Initially, we made it very easy for ourselves and said that the NetworkChannels must provide reliable, in-order delivery. But we know this is unrealistic for many systems. In the same way that we let users handle timing and ordering failures with a deadline violation handler and STP violation handler, I think we must let the user handle network failures at the application level.
I propose that we let the user provide a handler, which is triggered when the connection status of the associated port changes. I am trying to find the right keyword for it, I am using
status
for now, to indicate that it is triggered by a change in the port status.Some open questions:
I am curious to hear your thoughts here. Personally, I think this is the only reasonable way forward. We are thinking about distributed real-time systems with unreliable networks, we cannot hide the fact that the connection status of ports will change throughout the lifecycle of the federate.
Beta Was this translation helpful? Give feedback.
All reactions