static int error_handler(lua_State * L) { int argc = lua_gettop(L); if(!get_error_handler(L)) { lua_pop(L, 1); return argc; } lua_insert(L, 1); lua_pcall(L, argc, LUA_MULTRET, 0); return lua_gettop(L); }
int xcb_event_handle(xcb_event_handlers_t *evenths, xcb_generic_event_t *event) { xcb_event_handler_t *eventh = 0; assert(event->response_type != 1); if(event->response_type == 0) eventh = get_error_handler(evenths, ((xcb_generic_error_t *) event)->error_code); else eventh = get_event_handler(evenths, event->response_type); if(eventh->handler) return eventh->handler(eventh->data, evenths->c, event); return 0; }
void tcp_listener::start_listening() { assert(get_error_handler()); assert(get_accept_handler()); if (is_listening()) { return; } m_acceptor.open(m_endpoint.protocol()); m_acceptor.set_option( boost::asio::ip::tcp::acceptor::reuse_address(true)); m_acceptor.bind(m_endpoint); m_acceptor.listen(); set_listening(true); async_accept(); }
void xcb_event_set_error_handler(xcb_event_handlers_t *evenths, int error, xcb_generic_error_handler_t handler, void *data) { set_handler((xcb_generic_event_handler_t) handler, data, get_error_handler(evenths, error)); }