X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/78ad8111935dd39520e2cbae135e042817d78583..47a22ba74687bf963bf797d72745e9f1e6f40dd9:/src/mc/mc_visited.cpp diff --git a/src/mc/mc_visited.cpp b/src/mc/mc_visited.cpp index d0f79873f7..104576b93e 100644 --- a/src/mc/mc_visited.cpp +++ b/src/mc/mc_visited.cpp @@ -1,4 +1,4 @@ -/* 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 @@ -54,13 +54,13 @@ void visited_state_free_voidp(void *s) */ 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()); @@ -76,16 +76,16 @@ static mc_visited_state_t visited_state_new() 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()); @@ -349,7 +349,7 @@ mc_visited_state_t is_visited_state(mc_state_t graph_state) unsigned int cursor2 = 0; unsigned int index2 = 0; xbt_dynar_foreach(visited_states, cursor2, state_test){ - if (state_test->num < min2) { + if (!MC_important_snapshot(state_test->system_state) && state_test->num < min2) { index2 = cursor2; min2 = state_test->num; } @@ -466,7 +466,8 @@ int is_visited_pair(mc_visited_pair_t visited_pair, mc_pair_t pair) { unsigned int cursor2 = 0; unsigned int index2 = 0; xbt_dynar_foreach(visited_pairs, cursor2, pair_test) { - if (pair_test->num < min2) { + if (!MC_important_snapshot(pair_test->graph_state->system_state) + && pair_test->num < min2) { index2 = cursor2; min2 = pair_test->num; }