Exemplo n.º 1
0
static void iv_fd_register_epilogue(struct iv_state *st, struct iv_fd_ *fd)
{
	int yes;

	st->numobjs++;
	st->numfds++;

	iv_fd_set_cloexec(fd->fd);
	iv_fd_set_nonblock(fd->fd);

	yes = 1;
	setsockopt(fd->fd, SOL_SOCKET, SO_OOBINLINE, &yes, sizeof(yes));
}
Exemplo n.º 2
0
static int iv_fd_kqueue_init(struct iv_state *st)
{
	int kqueue_fd;

	kqueue_fd = kqueue();
	if (kqueue_fd < 0)
		return -1;

	iv_fd_set_cloexec(kqueue_fd);

	st->u.kqueue.kqueue_fd = kqueue_fd;
	INIT_IV_LIST_HEAD(&st->u.kqueue.notify);

	return 0;
}
Exemplo n.º 3
0
static int iv_fd_port_init(struct iv_state *st)
{
    int fd;

    fd = port_create();
    if (fd < 0)
        return -1;

    iv_fd_set_cloexec(fd);

    INIT_IV_LIST_HEAD(&st->u.port.notify);
    st->u.port.port_fd = fd;
    st->u.port.timer_id = -1;

    return 0;
}