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
Update copyright lines.
[simgrid.git]
/
src
/
mc
/
Session.cpp
diff --git
a/src/mc/Session.cpp
b/src/mc/Session.cpp
index
e25e431
..
3bd3c48
100644
(file)
--- a/
src/mc/Session.cpp
+++ b/
src/mc/Session.cpp
@@
-1,4
+1,4
@@
-/* Copyright (c) 2015-202
0
. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2015-202
1
. The SimGrid Team. All rights reserved. */
/* 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. */
@@
-15,7
+15,9
@@
#include "xbt/log.h"
#include "xbt/system_error.hpp"
#include "xbt/log.h"
#include "xbt/system_error.hpp"
+#include <array>
#include <memory>
#include <memory>
+#include <string>
#include <fcntl.h>
#ifdef __linux__
#include <fcntl.h>
#ifdef __linux__
@@
-27,7
+29,7
@@
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_Session, mc, "Model-checker session");
namespace simgrid {
namespace mc {
namespace simgrid {
namespace mc {
-
static void run_child_process(int socket, const std::function<void()>&
code)
+
template <class Code> void run_child_process(int socket, Code
code)
{
/* On startup, simix_global_init() calls simgrid::mc::Client::initialize(), which checks whether the MC_ENV_SOCKET_FD
* env variable is set. If so, MC mode is assumed, and the client is setup from its side
{
/* On startup, simix_global_init() calls simgrid::mc::Client::initialize(), which checks whether the MC_ENV_SOCKET_FD
* env variable is set. If so, MC mode is assumed, and the client is setup from its side
@@
-50,10
+52,7
@@
static void run_child_process(int socket, const std::function<void()>& code)
// modifying its .got.plt during snapshot.
setenv("LC_BIND_NOW", "1", 1);
// modifying its .got.plt during snapshot.
setenv("LC_BIND_NOW", "1", 1);
- char buffer[64];
- int res = std::snprintf(buffer, sizeof(buffer), "%i", socket);
- xbt_assert((size_t)res < sizeof(buffer) && res != -1);
- setenv(MC_ENV_SOCKET_FD, buffer, 1);
+ setenv(MC_ENV_SOCKET_FD, std::to_string(socket).c_str(), 1);
code();
}
code();
}
@@
-145,12
+144,12
@@
void Session::close()
bool Session::actor_is_enabled(aid_t pid) const
{
bool Session::actor_is_enabled(aid_t pid) const
{
- s_mc_message_actor_enabled_t msg{
MC_MESSAGE_
ACTOR_ENABLED, pid};
+ s_mc_message_actor_enabled_t msg{
simgrid::mc::MessageType::
ACTOR_ENABLED, pid};
model_checker_->channel().send(msg);
model_checker_->channel().send(msg);
-
char buff[MC_MESSAGE_LENGTH]
;
- ssize_t received = model_checker_->channel().receive(buff
, MC_MESSAGE_LENGTH
, true);
+
std::array<char, MC_MESSAGE_LENGTH> buff
;
+ ssize_t received = model_checker_->channel().receive(buff
.data(), buff.size()
, true);
xbt_assert(received == sizeof(s_mc_message_int_t), "Unexpected size in answer to ACTOR_ENABLED");
xbt_assert(received == sizeof(s_mc_message_int_t), "Unexpected size in answer to ACTOR_ENABLED");
- return ((s_mc_message_int_t*)buff)->value;
+ return ((s_mc_message_int_t*)buff
.data()
)->value;
}
simgrid::mc::Session* session;
}
simgrid::mc::Session* session;