You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After this PR, reactor-ts cannot handle a cyclic dependency on federated execution
Before the PR, each federated can advance its tag above the start tag without any grant from the RTI. And I prevent it in the PR because it leads to non-determinism at the start tag. Now, all federates have to receive tag advance grant messages before they advance their tag.
However, when there is a cyclic dependency (e.g. SimpleFederated.lf), the deadlock occurs with the current implementation of reactor-ts. Because no federate can send Logical Tag Complete and the RTI cannot send Tag Advance Grant.
There are two different ways to fix it. One is adopting the present method of reactor-c. reactor-c handles cyclic dependencies by using input control reaction , output control reaction, and Provisional Tag Advance Grant messages.
Another method is described in this report. 'Anirudh Rengarajan' suggested a new way to handle this cycle. And we prefer to implement this method in reactor-ts.
The text was updated successfully, but these errors were encountered:
byeonggiljun
changed the title
Issues with handling cyclic dependencies
Issues with handling cyclic dependencies in the federated execution
Jun 19, 2023
After this PR,
reactor-ts
cannot handle a cyclic dependency on federated executionBefore the PR, each federated can advance its tag above the start tag without any grant from the RTI. And I prevent it in the PR because it leads to non-determinism at the start tag. Now, all federates have to receive
tag advance grant
messages before they advance their tag.However, when there is a cyclic dependency (e.g. SimpleFederated.lf), the deadlock occurs with the current implementation of
reactor-ts
. Because no federate can sendLogical Tag Complete
and the RTI cannot sendTag Advance Grant
.There are two different ways to fix it. One is adopting the present method of
reactor-c
.reactor-c
handles cyclic dependencies by usinginput control reaction
,output control reaction
, andProvisional Tag Advance Grant
messages.Another method is described in this report. 'Anirudh Rengarajan' suggested a new way to handle this cycle. And we prefer to implement this method in
reactor-ts
.The text was updated successfully, but these errors were encountered: