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]);
}
Example #3
0
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;
}