A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Change two dynars (maybe more).
[simgrid.git]
/
src
/
mc
/
mc_comm_pattern.cpp
diff --git
a/src/mc/mc_comm_pattern.cpp
b/src/mc/mc_comm_pattern.cpp
index
0d6bd6b
..
4cb33e3
100644
(file)
--- a/
src/mc/mc_comm_pattern.cpp
+++ b/
src/mc/mc_comm_pattern.cpp
@@
-17,40
+17,31
@@
using simgrid::mc::remote;
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_comm_pattern, mc,
"Logging specific to MC communication patterns");
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_comm_pattern, mc,
"Logging specific to MC communication patterns");
-static void MC_patterns_copy(
xbt_dynar_t
dest,
- std::vector<simgrid::mc::PatternCommunication> const& source)
+static void MC_patterns_copy(
std::vector<simgrid::mc::PatternCommunication*>&
dest,
+
std::vector<simgrid::mc::PatternCommunication> const& source)
{
{
-
xbt_dynar_reset(dest
);
+
dest.clear(
);
for (simgrid::mc::PatternCommunication const& comm : source) {
simgrid::mc::PatternCommunication* copy_comm = new simgrid::mc::PatternCommunication(comm.dup());
for (simgrid::mc::PatternCommunication const& comm : source) {
simgrid::mc::PatternCommunication* copy_comm = new simgrid::mc::PatternCommunication(comm.dup());
-
xbt_dynar_push(dest, &
copy_comm);
+
dest.push_back(
copy_comm);
}
}
void MC_restore_communications_pattern(simgrid::mc::State* state)
{
}
}
void MC_restore_communications_pattern(simgrid::mc::State* state)
{
- simgrid::mc::PatternCommunicationList* list_process_comm;
- unsigned int cursor;
-
- xbt_dynar_foreach(initial_communications_pattern, cursor, list_process_comm)
- list_process_comm->index_comm = state->communicationIndices[cursor];
+ for (unsigned i = 0; i < initial_communications_pattern.size(); i++)
+ initial_communications_pattern[i].index_comm = state->communicationIndices[i];
for (unsigned i = 0; i < MC_smx_get_maxpid(); i++)
for (unsigned i = 0; i < MC_smx_get_maxpid(); i++)
- MC_patterns_copy(
- xbt_dynar_get_as(incomplete_communications_pattern, i, xbt_dynar_t),
- state->incomplete_comm_pattern[i]
- );
+ MC_patterns_copy(incomplete_communications_pattern[i], state->incomplete_comm_pattern[i]);
}
void MC_state_copy_incomplete_communications_pattern(simgrid::mc::State* state)
{
state->incomplete_comm_pattern.clear();
for (unsigned i=0; i < MC_smx_get_maxpid(); i++) {
}
void MC_state_copy_incomplete_communications_pattern(simgrid::mc::State* state)
{
state->incomplete_comm_pattern.clear();
for (unsigned i=0; i < MC_smx_get_maxpid(); i++) {
- xbt_dynar_t patterns = xbt_dynar_get_as(incomplete_communications_pattern, i, xbt_dynar_t);
std::vector<simgrid::mc::PatternCommunication> res;
std::vector<simgrid::mc::PatternCommunication> res;
- simgrid::mc::PatternCommunication* comm;
- unsigned int cursor;
- xbt_dynar_foreach(patterns, cursor, comm)
+ for (auto const& comm : incomplete_communications_pattern[i])
res.push_back(comm->dup());
state->incomplete_comm_pattern.push_back(std::move(res));
}
res.push_back(comm->dup());
state->incomplete_comm_pattern.push_back(std::move(res));
}
@@
-59,15
+50,11
@@
void MC_state_copy_incomplete_communications_pattern(simgrid::mc::State* state)
void MC_state_copy_index_communications_pattern(simgrid::mc::State* state)
{
state->communicationIndices.clear();
void MC_state_copy_index_communications_pattern(simgrid::mc::State* state)
{
state->communicationIndices.clear();
- simgrid::mc::PatternCommunicationList* list_process_comm;
- unsigned int cursor;
- xbt_dynar_foreach(initial_communications_pattern, cursor, list_process_comm)
- state->communicationIndices.push_back(list_process_comm->index_comm);
+ for (auto const& list_process_comm : initial_communications_pattern)
+ state->communicationIndices.push_back(list_process_comm.index_comm);
}
}
-void MC_handle_comm_pattern(
- e_mc_call_type_t call_type, smx_simcall_t req,
- int value, xbt_dynar_t pattern, int backtracking)
+void MC_handle_comm_pattern(e_mc_call_type_t call_type, smx_simcall_t req, int value, int backtracking)
{
// HACK, do not rely on the Checker implementation outside of it
simgrid::mc::CommunicationDeterminismChecker* checker =
{
// HACK, do not rely on the Checker implementation outside of it
simgrid::mc::CommunicationDeterminismChecker* checker =
@@
-78,7
+65,7
@@
void MC_handle_comm_pattern(
break;
case MC_CALL_TYPE_SEND:
case MC_CALL_TYPE_RECV:
break;
case MC_CALL_TYPE_SEND:
case MC_CALL_TYPE_RECV:
- checker->get_comm_pattern(
pattern,
req, call_type, backtracking);
+ checker->get_comm_pattern(req, call_type, backtracking);
break;
case MC_CALL_TYPE_WAIT:
case MC_CALL_TYPE_WAITANY:
break;
case MC_CALL_TYPE_WAIT:
case MC_CALL_TYPE_WAITANY:
@@
-92,7
+79,7
@@
void MC_handle_comm_pattern(
addr = mc_model_checker->process().read(remote(simcall_comm_waitany__getraw__comms(req) + value));
comm_addr = remote(static_cast<simgrid::kernel::activity::CommImpl*>(addr));
}
addr = mc_model_checker->process().read(remote(simcall_comm_waitany__getraw__comms(req) + value));
comm_addr = remote(static_cast<simgrid::kernel::activity::CommImpl*>(addr));
}
- checker->complete_comm_pattern(
pattern,
comm_addr, MC_smx_simcall_get_issuer(req)->get_pid(), backtracking);
+ checker->complete_comm_pattern(comm_addr, MC_smx_simcall_get_issuer(req)->get_pid(), backtracking);
}
break;
default:
}
break;
default: