lkml.org 
[lkml]   [2008]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: unexpected extra pollout events from epoll
> You do that by writing data until it's finished, or you
> get EAGAIN. If you
> get EAGAIN, you listen for EPOLLOUT.
> Reading is same, but you'd wait for EPOLLIN.

I've got a few questions about this approach. The most logical
way to do this seems to be:

1) Leave the epoll_wait with the EPOLLIN|EPOLLOUT event flags and
use epoll_ctl to switch the interest mask for each fd between EPOLLIN
and EPOLLOUT on a per fd basis.

2) When I'm ready to write, I do a write and if it does not fully
write and I get the EAGAIN flag, I switch the fd with epoll_ctl(fd,MOD,EPOLLOUT).

However, I get strange behavior when I tried adding fd's with only the
EPOLLIN interest mask. If I use epoll_wait with both the EPOLLIN and
EPOLLOUT interest mask, but add fd's with only the EPOLLIN interest mask,
I still seem to get EPOLLOUT events on the fd.

Am I supposed to change the main loop with epoll_wait so that when one
socket is reading that I switch the main loop to get EPOLLOUT events?
That means that I'm not receiving on any fd while I'm sending, so this
probably isn't right.

So, I'm a little confused.

Thanks in advance.

Paul






\
 
 \ /
  Last update: 2008-10-27 02:01    [W:0.038 / U:0.116 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site