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] Private Process::pid
[simgrid.git]
/
src
/
mc
/
mc_server.cpp
diff --git
a/src/mc/mc_server.cpp
b/src/mc/mc_server.cpp
index
deffb42
..
92c0e2e
100644
(file)
--- a/
src/mc/mc_server.cpp
+++ b/
src/mc/mc_server.cpp
@@
-20,6
+20,9
@@
#include "mc_server.h"
#include "mc_private.h"
#include "mc_ignore.h"
#include "mc_server.h"
#include "mc_private.h"
#include "mc_ignore.h"
+#include "mcer_ignore.h"
+
+using simgrid::mc::remote;
extern "C" {
extern "C" {
@@
-41,8
+44,7
@@
static int mc_symbol_pointer_callback_evaluate(void* p)
{
struct mc_symbol_pointer_callback* callback = (struct mc_symbol_pointer_callback*) p;
int value;
{
struct mc_symbol_pointer_callback* callback = (struct mc_symbol_pointer_callback*) p;
int value;
- MC_process_read(callback->process, MC_ADDRESS_SPACE_READ_FLAGS_NONE,
- &value, callback->value, sizeof(value), MC_PROCESS_INDEX_ANY);
+ callback->process->read_bytes(&value, sizeof(value), remote(callback->value));
return value;
}
return value;
}
@@
-96,8
+98,8
@@
void s_mc_server::shutdown()
int status = process->status;
if (process->running) {
XBT_DEBUG("Killing process");
int status = process->status;
if (process->running) {
XBT_DEBUG("Killing process");
- kill(process->pid, SIGTERM);
- if (waitpid(process->pid, &status, 0) == -1)
+ kill(process->pid
()
, SIGTERM);
+ if (waitpid(process->pid
()
, &status, 0) == -1)
throw std::system_error(errno, std::system_category());
// TODO, handle the case when the process does not want to die with a timeout
process->status = status;
throw std::system_error(errno, std::system_category());
// TODO, handle the case when the process does not want to die with a timeout
process->status = status;
@@
-113,7
+115,7
@@
void s_mc_server::exit()
else if (WIFSIGNALED(status)) {
// Try to uplicate the signal of the model-checked process.
// This is a temporary hack so we don't try too hard.
else if (WIFSIGNALED(status)) {
// Try to uplicate the signal of the model-checked process.
// This is a temporary hack so we don't try too hard.
- kill(mc_model_checker->process().pid, WTERMSIG(status));
+ kill(mc_model_checker->process().pid
()
, WTERMSIG(status));
abort();
} else {
xbt_die("Unexpected status from model-checked process");
abort();
} else {
xbt_die("Unexpected status from model-checked process");
@@
-186,7
+188,7
@@
bool s_mc_server::handle_events()
if (size != sizeof(message))
xbt_die("Broken messsage");
memcpy(&message, buffer, sizeof(message));
if (size != sizeof(message))
xbt_die("Broken messsage");
memcpy(&message, buffer, sizeof(message));
- MC_
remove_ignore_heap
(message.addr, message.size);
+ MC_
heap_region_ignore_remove
(message.addr, message.size);
break;
}
break;
}
@@
-196,8
+198,8
@@
bool s_mc_server::handle_events()
if (size != sizeof(message))
xbt_die("Broken messsage");
memcpy(&message, buffer, sizeof(message));
if (size != sizeof(message))
xbt_die("Broken messsage");
memcpy(&message, buffer, sizeof(message));
- MC_process_ignore_memory(&mc_model_checker->process(),
- message.addr, message.size);
+ mc_model_checker->process().ignore_region(
+
(std::uint64_t)
message.addr, message.size);
break;
}
break;
}
@@
-313,7
+315,7
@@
void s_mc_server::handle_waitpid()
}
}
}
}
- if (pid == mc_model_checker->process().pid) {
+ if (pid == mc_model_checker->process().pid
()
) {
if (WIFEXITED(status) || WIFSIGNALED(status)) {
XBT_DEBUG("Child process is over");
mc_model_checker->process().status = status;
if (WIFEXITED(status) || WIFSIGNALED(status)) {
XBT_DEBUG("Child process is over");
mc_model_checker->process().status = status;