int shard_connection::connect(struct connect_info* addr) { // set required setup commands m_authentication = m_config->authenticate ? auth_none : auth_done; m_db_selection = m_config->select_db ? select_none : select_done; // clean up existing buffers evbuffer_drain(m_read_buf, evbuffer_get_length(m_read_buf)); evbuffer_drain(m_write_buf, evbuffer_get_length(m_write_buf)); // setup socket setup_socket(addr); // set up event setup_event(); // call connect if (::connect(m_sockfd, m_unix_sockaddr ? (struct sockaddr *) m_unix_sockaddr : addr->ci_addr, m_unix_sockaddr ? sizeof(struct sockaddr_un) : addr->ci_addrlen) == -1) { if (errno == EINPROGRESS || errno == EWOULDBLOCK) return 0; benchmark_error_log("connect failed, error = %s\n", strerror(errno)); return -1; } return 0; }
void SDL2KeyboardDeviceImpl::check(Device::events_vector& events, const WindowSystem& /*ws*/) { SDL_events_vector sdl_events; int masks[2] = {SDL_KEYDOWN, SDL_KEYUP}; int cnt = check_for_events(masks, 2, sdl_events); if (cnt <= 0) return; events.resize(cnt); for (int i = 0; i < cnt; ++i) setup_event(static_cast<KeyboardEvent*>(events[i].get()), sdl_events[i]); }
int setup_events(struct eventlist *el, bool measure_all, int measure_pid) { struct event *e, *leader = NULL; int i; for (e = el->eventlist; e; e = e->next) { for (i = 0; i < el->num_cpus; i++) { if (setup_event(e, i, leader, measure_all, measure_pid) < 0) return -1; } if (e->group_leader) leader = e; if (e->end_group) leader = NULL; } return 0; }