192 {
193 _nodeop_socket.async_wait(boost::asio::local::datagram_protocol::socket::wait_read, [
this, &ctx](
auto ec) {
194 if(ec) {
195 ctx.stop();
196 return;
197 }
199 if(!success) {
200 ctx.stop();
201 return;
202 }
203 if(!std::holds_alternative<initialize_message>(message) || fds.size() != 2) {
204 ctx.stop();
205 return;
206 }
207 try {
208 local::datagram_protocol::socket _socket_for_comm(ctx);
209 _socket_for_comm.assign(local::datagram_protocol(), fds[0].release());
212 ctx.post([&]() {
213 _compile_sessions.erase(it);
214 });
215 });
217 }
218 catch(const std::exception& e) {
220 }
221 catch(...) {
223 }
224
226 });
227 }
bool write_message_with_fds(boost::asio::local::datagram_protocol::socket &s, const eosvmoc_message &message, const std::vector< wrapped_fd > &fds=std::vector< wrapped_fd >())
std::tuple< bool, eosvmoc_message, std::vector< wrapped_fd > > read_message_with_fds(boost::asio::local::datagram_protocol::socket &s)
std::list< compile_monitor_session > _compile_sessions