Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Concatenate nested namespaces (sonar).
[simgrid.git] / src / mc / remote / CheckerSide.cpp
1 /* Copyright (c) 2007-2022. The SimGrid Team. All rights reserved.          */
2
3 /* This program is free software; you can redistribute it and/or modify it
4  * under the terms of the license (GNU LGPL) which comes with this package. */
5
6 #include "src/mc/remote/CheckerSide.hpp"
7 #include <csignal>
8 #include <sys/wait.h>
9
10 namespace simgrid::mc {
11
12 void CheckerSide::start(void (*handler)(int, short, void*), ModelChecker* mc)
13 {
14   auto* base = event_base_new();
15   base_.reset(base);
16
17   auto* socket_event = event_new(base, get_channel().get_socket(), EV_READ | EV_PERSIST, handler, mc);
18   event_add(socket_event, nullptr);
19   socket_event_.reset(socket_event);
20
21   auto* signal_event = event_new(base, SIGCHLD, EV_SIGNAL | EV_PERSIST, handler, mc);
22   event_add(signal_event, nullptr);
23   signal_event_.reset(signal_event);
24 }
25
26 void CheckerSide::dispatch() const
27 {
28   event_base_dispatch(base_.get());
29 }
30
31 void CheckerSide::break_loop() const
32 {
33   event_base_loopbreak(base_.get());
34 }
35
36 } // namespace simgrid::mc