54 inline bool ccgs_can_halt_simulation(
void)
64 void ccgs_reduce_termination(
void)
66 register unsigned int i;
67 bool termination =
true;
70 for (i = 0; i <
n_prc; i++) {
110 bool check_res =
true;
117 foreach_bound_lp(lp) {
125 if (time_barrier_pointer[i] == NULL)
133 temporary_log.
state = lp->state;
138 lp->state = time_barrier_pointer[i]->
state;
139 lp->current_base_pointer =
161 lp->OnGVT(lp->gid.to_int, lp->current_base_pointer);
165 lp->state = temporary_log.
state;
static bool * lps_termination
In case termination detection is incremental, this array keeps track of LPs that think the simulation...
Structure for LP's state.
void broadcast_termination(void)
Notify all the kernels about local termination.
void log_delete(void *ckpt)
int check_termination_mode
Check termination strategy: standard or incremental.
Core ROOT-Sim functionalities.
The ROOT-Sim scheduler main module header.
short unsigned int state
Execution state.
__thread struct lp_struct * current
This is a per-thread variable pointing to the block state of the LP currently scheduled.
Consistent and Committed Global State.
void log_restore(struct lp_struct *lp, state_t *state_queue_node)
bool all_kernels_terminated(void)
Check if all kernels have reached the termination condition.
void * log_state(struct lp_struct *lp)
double simtime_t
This defines the type with whom timestamps are represented.
simulation_configuration rootsim_config
This global variable holds the configuration for the current simulation.
void * base_pointer
This is a pointer used to keep track of changes to simulation states via SetState() ...
Memory Manager main header.
static bool ccgs_completed_simulation
This variable is an aggregate result for the distributed termination detection.
void * log
A pointer to the actual log.
void ccgs_compute_snapshot(state_t *time_barrier_pointer[], simtime_t gvt)
unsigned int n_prc
Number of logical processes hosted by the current kernel instance.
#define unlikely(exp)
Optimize the branch as likely not taken.