-/* Copyright (c) 2015-2016. The SimGrid Team.
+/* Copyright (c) 2015-2017. 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. */
+#include <csignal>
#include <fcntl.h>
-#include <signal.h>
#include <functional>
#include "xbt/log.h"
+#include "xbt/system_error.hpp"
#include <mc/mc.h>
#include <simgrid/modelchecker.h>
#include <simgrid/sg_config.h>
-#include <xbt/system_error.hpp>
#include "src/mc/Session.hpp"
#include "src/mc/mc_state.h"
#include "src/mc/mc_private.h"
#include "src/mc/checker/Checker.hpp"
+#include "src/smpi/include/private.hpp"
+
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_Session, mc, "Model-checker session");
namespace simgrid {
Session::Session(pid_t pid, int socket)
{
- std::unique_ptr<simgrid::mc::Process> process(new simgrid::mc::Process(pid, socket));
+ std::unique_ptr<simgrid::mc::RemoteClient> process(new simgrid::mc::RemoteClient(pid, socket));
// TODO, automatic detection of the config from the process
process->privatized(smpi_privatize_global_variables != SMPI_PRIVATIZE_NONE);
modelChecker_ = std::unique_ptr<ModelChecker>(
Session* Session::fork(std::function<void()> code)
{
// Create a AF_LOCAL socketpair used for exchanging messages
- // bewteen the model-checker process (ourselves) and the model-checked
+ // between the model-checker process (ourselves) and the model-checked
// process:
int res;
int sockets[2];
- res = socketpair(AF_LOCAL, SOCK_DGRAM | SOCK_CLOEXEC, 0, sockets);
+ res = socketpair(AF_LOCAL, SOCK_SEQPACKET, 0, sockets);
if (res == -1)
throw simgrid::xbt::errno_error("Could not create socketpair");