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
[mc] Cleanup RegionSnapshot buffer code
[simgrid.git]
/
src
/
mc
/
mc_base.cpp
diff --git
a/src/mc/mc_base.cpp
b/src/mc/mc_base.cpp
index
8c8610f
..
5b61d7b
100644
(file)
--- a/
src/mc/mc_base.cpp
+++ b/
src/mc/mc_base.cpp
@@
-4,22
+4,26
@@
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
-#include <assert.h>
+#include <cassert>
+
+#include <simgrid_config.h>
+
+#include <xbt/log.h>
+#include <xbt/asserts.h>
+#include <xbt/dynar.h>
#include <simgrid/simix.h>
#include <simgrid/simix.h>
-#include "mc_base.h"
-#include "../simix/smx_private.h"
-#include "mc/mc_record.h"
-#include "mc/mc_replay.h"
+#include "src/mc/mc_base.h"
+#include "src/simix/smx_private.h"
+#include "src/mc/mc_replay.h"
#include "mc/mc.h"
#include "mc/mc.h"
-#include "mc_protocol.h"
+#include "
src/mc/
mc_protocol.h"
#ifdef HAVE_MC
#ifdef HAVE_MC
-#include "mc_process.h"
-#include "ModelChecker.hpp"
-#include "mc_smx.h"
-#include "mc_server.h"
+#include "src/mc/Process.hpp"
+#include "src/mc/ModelChecker.hpp"
+#include "src/mc/mc_smx.h"
#endif
#ifdef HAVE_MC
#endif
#ifdef HAVE_MC
@@
-41,12
+45,7
@@
int MC_random(int min, int max)
void MC_wait_for_requests(void)
{
void MC_wait_for_requests(void)
{
-#ifdef HAVE_MC
- if (mc_mode == MC_MODE_SERVER) {
- MC_server_wait_client(&mc_model_checker->process());
- return;
- }
-#endif
+ assert(mc_mode != MC_MODE_SERVER);
smx_process_t process;
smx_simcall_t req;
smx_process_t process;
smx_simcall_t req;
@@
-94,9
+93,9
@@
int MC_request_is_enabled(smx_simcall_t req)
return TRUE;
} else {
/* On the other hand if it hasn't a timeout, check if the comm is ready.*/
return TRUE;
} else {
/* On the other hand if it hasn't a timeout, check if the comm is ready.*/
- if (act->comm.detached && act->comm.src_proc ==
NULL
+ if (act->comm.detached && act->comm.src_proc ==
nullptr
&& act->comm.type == SIMIX_COMM_READY)
&& act->comm.type == SIMIX_COMM_READY)
- return (act->comm.dst_proc !=
NULL
);
+ return (act->comm.dst_proc !=
nullptr
);
}
return (act->comm.src_proc && act->comm.dst_proc);
}
return (act->comm.src_proc && act->comm.dst_proc);
@@
-142,6
+141,9
@@
int MC_request_is_enabled(smx_simcall_t req)
return FALSE;
}
return FALSE;
}
+ case SIMCALL_MUTEX_TRYLOCK:
+ return TRUE;
+
case SIMCALL_MUTEX_LOCK: {
smx_mutex_t mutex = simcall_mutex_lock__get__mutex(req);
#ifdef HAVE_MC
case SIMCALL_MUTEX_LOCK: {
smx_mutex_t mutex = simcall_mutex_lock__get__mutex(req);
#ifdef HAVE_MC
@@
-151,7
+153,7
@@
int MC_request_is_enabled(smx_simcall_t req)
mutex = &temp_mutex;
}
#endif
mutex = &temp_mutex;
}
#endif
- if(mutex->owner ==
NULL
)
+ if(mutex->owner ==
nullptr
)
return TRUE;
else
#ifdef HAVE_MC
return TRUE;
else
#ifdef HAVE_MC
@@
-179,6
+181,7
@@
int MC_request_is_visible(smx_simcall_t req)
|| req->call == SIMCALL_COMM_TESTANY
|| req->call == SIMCALL_MC_RANDOM
|| req->call == SIMCALL_MUTEX_LOCK
|| req->call == SIMCALL_COMM_TESTANY
|| req->call == SIMCALL_MC_RANDOM
|| req->call == SIMCALL_MUTEX_LOCK
+ || req->call == SIMCALL_MUTEX_TRYLOCK
#ifdef HAVE_MC
|| req->call == SIMCALL_MC_SNAPSHOT
|| req->call == SIMCALL_MC_COMPARE_SNAPSHOTS
#ifdef HAVE_MC
|| req->call == SIMCALL_MC_SNAPSHOT
|| req->call == SIMCALL_MC_COMPARE_SNAPSHOTS
@@
-225,11
+228,12
@@
void MC_simcall_handle(smx_simcall_t req, int value)
}
unsigned i;
}
unsigned i;
- mc_smx_process_info_t pi =
NULL
;
+ mc_smx_process_info_t pi =
nullptr
;
xbt_dynar_foreach_ptr(mc_model_checker->process().smx_process_infos, i, pi) {
if (req == &pi->copy.simcall) {
xbt_dynar_foreach_ptr(mc_model_checker->process().smx_process_infos, i, pi) {
if (req == &pi->copy.simcall) {
- MC_server_simcall_handle(&mc_model_checker->process(), pi->copy.pid, value);
+ mc_model_checker->simcall_handle(
+ mc_model_checker->process(), pi->copy.pid, value);
return;
}
}
return;
}
}