SimIntToolkit / cpswt-core

Foundational codebase with support for java federates
MIT License
1 stars 3 forks source link

A federate set to be a late joiner cannot join the federation at time t = 0.0 or the logical time progression will freeze forever #61

Open sperka opened 7 years ago

sperka commented 7 years ago

The register synchronization point function is called without the expected federate set: https://github.com/SimIntToolkit/cpswt-core/blob/v0.5.0/cpswt-core/federation-manager/src/main/java/org/cpswt/hla/FederationManager.java#L347

This function should be passed the list of federates that are expected to join. With the current implementation, this may be impossible because we do not know the federate names of the expected federates until after they have joined. However, with the empty set, even the late join federates are expected to achieve the registered synchronization points, which causes the logical time freeze.

sperka commented 7 years ago

@tpr1

tpr1 commented 7 years ago

the term late joiner doesn't quite describe what we want to support; optional joiner would be a more appropriate term. this might be a missing feature rather than a bug.

a federate should have a flag that indicates it may or may not join the federation. in addition, if it does join the federation, it may or may not join late. that gives three permutations:

  1. expected federate
  2. optional federate that joins at t = 0
  3. optional federate that joins late
hneema08 commented 7 years ago

I don't quite see the use-case for an optional federate yet. But, let's say we have such a use-case, then @sperka, is there a way we can support this feature, while keeping the existing functionality of synchronization points intact?

sperka commented 7 years ago

This is a feature request. Synched the labels and milestone

tpr1 commented 7 years ago

visualization federates that are passive listeners and do not impact the experiment progression.

the original requirement was because of the workshop exercise house federates where some people would finish the exercise on time, while others would still be working after the federation has started.