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] ptrace the model-checker application
[simgrid.git]
/
src
/
simix
/
smx_global.c
diff --git
a/src/simix/smx_global.c
b/src/simix/smx_global.c
index
25882af
..
3b92c94
100644
(file)
--- a/
src/simix/smx_global.c
+++ b/
src/simix/smx_global.c
@@
-5,6
+5,7
@@
* under the terms of the license (GNU LGPL) which comes with this package. */
#include <stdlib.h>
* under the terms of the license (GNU LGPL) which comes with this package. */
#include <stdlib.h>
+#include <sys/ptrace.h>
#include "smx_private.h"
#include "xbt/heap.h"
#include "smx_private.h"
#include "xbt/heap.h"
@@
-226,9
+227,14
@@
void SIMIX_global_init(int *argc, char **argv)
// We need to communicate initialization of the different layers to the model-checker.
if (mc_mode == MC_MODE_NONE) {
if (getenv(MC_ENV_SOCKET_FD)) {
// We need to communicate initialization of the different layers to the model-checker.
if (mc_mode == MC_MODE_NONE) {
if (getenv(MC_ENV_SOCKET_FD)) {
+
mc_mode = MC_MODE_CLIENT;
MC_client_init();
mc_mode = MC_MODE_CLIENT;
MC_client_init();
- MC_client_hello();
+
+ // Waiting for the model-checker:
+ if (ptrace(PTRACE_TRACEME, 0, NULL, NULL) == -1 || raise(SIGSTOP) != 0)
+ xbt_die("Could not wait for the model-checker");
+
MC_client_handle_messages();
}
}
MC_client_handle_messages();
}
}