1 /* Copyright (c) 2007-2020. The SimGrid Team. All rights reserved. */
3 /* This program is free software; you can redistribute it and/or modify it
4 * under the terms of the license (GNU LGPL) which comes with this package. */
8 #include "src/mc/checker/CommunicationDeterminismChecker.hpp"
9 #include "src/mc/mc_smx.hpp"
11 using simgrid::mc::remote;
13 static void MC_patterns_copy(std::vector<simgrid::mc::PatternCommunication*>& dest,
14 std::vector<simgrid::mc::PatternCommunication> const& source)
17 for (simgrid::mc::PatternCommunication const& comm : source) {
18 auto* copy_comm = new simgrid::mc::PatternCommunication(comm.dup());
19 dest.push_back(copy_comm);
23 void MC_restore_communications_pattern(simgrid::mc::State* state)
25 for (unsigned i = 0; i < initial_communications_pattern.size(); i++)
26 initial_communications_pattern[i].index_comm = state->communication_indices_[i];
28 for (unsigned i = 0; i < MC_smx_get_maxpid(); i++)
29 MC_patterns_copy(incomplete_communications_pattern[i], state->incomplete_comm_pattern_[i]);