mc_server_t mc_server;
-int MC_server_init(pid_t pid, int socket)
-{
- if (mc_server)
- xbt_die("MC server already present");
- mc_mode = MC_MODE_SERVER;
- mc_server = new s_mc_server(pid, socket);
- mc_server->start();
- return 0;
-}
-
-void MC_server_run(void)
-{
- try {
- mc_server->resume(&mc_model_checker->process);
- mc_server->loop();
- mc_server->shutdown();
- mc_server->exit();
- }
- catch(std::exception& e) {
- XBT_ERROR(e.what());
- exit(MC_SERVER_ERROR);
- }
-}
-
s_mc_server::s_mc_server(pid_t pid, int socket)
{
this->pid = pid;
throw std::system_error(res, std::system_category());
XBT_DEBUG("Greeted the MC client");
- MC_init_pid(pid, socket);
-
// Block SIGCHLD (this will be handled with accept/signalfd):
sigset_t set;
sigemptyset(&set);
if (size == -1 && errno != EAGAIN)
throw std::system_error(errno, std::system_category());
else switch(message.type) {
+ case MC_MESSAGE_IGNORE_REGION:
+ XBT_DEBUG("Received ignored region");
+ // Ignored for now
+ break;
default:
xbt_die("Unexpected message from model-checked application");
}