auto* base = event_base_new();
base_.reset(base);
- auto* socket_event = event_new(
+ socket_event_ = event_new(
base, get_channel().get_socket(), EV_READ | EV_PERSIST,
[](evutil_socket_t sig, short events, void* arg) {
auto checker = static_cast<simgrid::mc::CheckerSide*>(arg);
}
},
this);
- event_add(socket_event, nullptr);
- socket_event_.reset(socket_event);
+ event_add(socket_event_, nullptr);
- auto* signal_event = event_new(
+ signal_event_ = event_new(
base, SIGCHLD, EV_SIGNAL | EV_PERSIST,
[](evutil_socket_t sig, short events, void* arg) {
auto checker = static_cast<simgrid::mc::CheckerSide*>(arg);
}
},
this);
- event_add(signal_event, nullptr);
- signal_event_.reset(signal_event);
+ event_add(signal_event_, nullptr);
}
CheckerSide::CheckerSide(const std::vector<char*>& args, bool need_memory_introspection) : running_(true)
}
}
+CheckerSide::~CheckerSide()
+{
+ event_del(socket_event_);
+ event_free(socket_event_);
+ event_del(signal_event_);
+ event_free(signal_event_);
+}
+
void CheckerSide::dispatch_events() const
{
event_base_dispatch(base_.get());