[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <107660.83879.qm@web56306.mail.re3.yahoo.com>
Date: Sun, 26 Oct 2008 17:58:49 -0700 (PDT)
From: Paul P <ppak_98@...oo.com>
To: linux-kernel@...r.kernel.org
Subject: Re: 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists