stfail ("new_client accept()");
stinf ("Got a connection -- fd = %d (0x%08x)!\n", client_fd, client_fd);
+ if (fcntl (client_fd, F_SETFL, O_NONBLOCK) < 0)
+ stfail ("fcntl()");
conn->fd = client_fd;
struct epoll_event ev;
int rv;
- ev.events = EPOLLIN;
+ ev.events = EPOLLET | EPOLLIN;
ev.data.u64 = conn - ssm->conn_pool;
rv = epoll_ctl (ssm->epfd, EPOLL_CTL_ADD, client_fd, &ev);
if (rv < 0)
stfail ("echo_af_unix_init listen()");
- ssm->af_unix_listen_ev.events = EPOLLIN;
+ ssm->af_unix_listen_ev.events = EPOLLET | EPOLLIN;
ssm->af_unix_listen_ev.data.u32 = SOCK_TEST_AF_UNIX_ACCEPT_DATA;
rv = epoll_ctl (ssm->epfd, EPOLL_CTL_ADD, ssm->af_unix_listen_fd,
&ssm->af_unix_listen_ev);
if (ssm->epfd < 0)
stfail ("main epoll_create()");
- ssm->listen_ev.events = EPOLLIN;
+ ssm->listen_ev.events = EPOLLET | EPOLLIN;
ssm->listen_ev.data.u32 = ~0;
rv = epoll_ctl (ssm->epfd, EPOLL_CTL_ADD, ssm->listen_fd, &ssm->listen_ev);