-/* Copyright (c) 2011-2014. The SimGrid Team.
+/* Copyright (c) 2011-2015. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
void visited_state_free(mc_visited_state_t state)
{
if (state) {
- if(!is_exploration_stack_state(state)){
- MC_free_snapshot(state->system_state);
- }
+ if(!is_exploration_stack_state(state))
+ delete state->system_state;
xbt_free(state);
}
}
*/
static mc_visited_state_t visited_state_new()
{
- mc_process_t process = &(mc_model_checker->process());
+ simgrid::mc::Process* process = &(mc_model_checker->process());
mc_visited_state_t new_state = xbt_new0(s_mc_visited_state_t, 1);
new_state->heap_bytes_used = mmalloc_get_bytes_used_remote(
- MC_process_get_heap(process)->heaplimit,
- MC_process_get_malloc_info(process));
+ process->get_heap()->heaplimit,
+ process->get_malloc_info());
- if (MC_process_is_self(&mc_model_checker->process())) {
+ if (mc_model_checker->process().is_self()) {
new_state->nb_processes = xbt_swag_size(simix_global->process_list);
} else {
MC_process_smx_refresh(&mc_model_checker->process());
mc_visited_pair_t MC_visited_pair_new(int pair_num, xbt_automaton_state_t automaton_state, xbt_dynar_t atomic_propositions, mc_state_t graph_state)
{
- mc_process_t process = &(mc_model_checker->process());
+ simgrid::mc::Process* process = &(mc_model_checker->process());
mc_visited_pair_t pair = NULL;
pair = xbt_new0(s_mc_visited_pair_t, 1);
pair->graph_state = graph_state;
if(pair->graph_state->system_state == NULL)
pair->graph_state->system_state = MC_take_snapshot(pair_num);
pair->heap_bytes_used = mmalloc_get_bytes_used_remote(
- MC_process_get_heap(process)->heaplimit,
- MC_process_get_malloc_info(process));
- if (MC_process_is_self(&mc_model_checker->process())) {
+ process->get_heap()->heaplimit,
+ process->get_malloc_info());
+ if (mc_model_checker->process().is_self()) {
pair->nb_processes = xbt_swag_size(simix_global->process_list);
} else {
MC_process_smx_refresh(&mc_model_checker->process());
*/
int get_search_interval(xbt_dynar_t list, void *ref, int *min, int *max)
{
-
- xbt_mheap_t heap = mmalloc_set_current_heap(mc_heap);
-
int cursor = 0, previous_cursor;
int nb_processes, heap_bytes_used, nb_processes_test, heap_bytes_used_test;
void *ref_test;
*max = next_cursor;
next_cursor++;
}
- mmalloc_set_current_heap(heap);
return -1;
}
}
}
-
- mmalloc_set_current_heap(heap);
return cursor;
}
}
}
- xbt_mheap_t heap = mmalloc_set_current_heap(mc_heap);
-
mc_visited_state_t new_state = visited_state_new();
graph_state->system_state = new_state->system_state;
graph_state->in_visited_states = 1;
if (xbt_dynar_is_empty(visited_states)) {
xbt_dynar_push(visited_states, &new_state);
- mmalloc_set_current_heap(heap);
return NULL;
} else {
XBT_DEBUG("State %d already visited ! (equal to state %d (state %d in dot_output))", new_state->num, state_test->num, new_state->other_num);
xbt_dynar_remove_at(visited_states, (min + res) - 1, NULL);
xbt_dynar_insert_at(visited_states, (min+res) - 1, &new_state);
- if(!raw_mem_set)
- MC_SET_STD_HEAP;
return new_state->other_num;
} */
xbt_dynar_insert_at(visited_states, cursor, &new_state);
XBT_DEBUG("Replace visited state %d with the new visited state %d", state_test->num, new_state->num);
- mmalloc_set_current_heap(heap);
return state_test;
}
cursor++;
XBT_DEBUG("Remove visited state (maximum number of stored states reached)");
}
- mmalloc_set_current_heap(heap);
return NULL;
}
}
if (_sg_mc_visited == 0)
return -1;
- xbt_mheap_t heap = mmalloc_set_current_heap(mc_heap);
-
mc_visited_pair_t new_visited_pair = NULL;
if (visited_pair == NULL) {
MC_pair_delete(pair_test);
}
}
- if(!raw_mem_set)
- MC_SET_STD_HEAP;
return pair->other_num;
} */
cursor = min;
} else {
MC_visited_pair_delete(pair_test);
}
- mmalloc_set_current_heap(heap);
return new_visited_pair->other_num;
}
}
}
}
-
- mmalloc_set_current_heap(heap);
return -1;
}