public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Robert Hancock <hancockr@shaw.ca>
To: ppak_98@yahoo.com
Cc: Davide Libenzi <davidel@xmailserver.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: unexpected extra pollout events from epoll
Date: Sun, 26 Oct 2008 23:59:17 -0600	[thread overview]
Message-ID: <490558B5.1060105@shaw.ca> (raw)
In-Reply-To: <fa.KeDEgbYh8k5LzzH6uv7u00N5twU@ifi.uio.no>

Paul P wrote:
>> Which version of epoll do you have? The epoll_wait()
>> function does not 
>> accept an event mask (like you write above,
>> EPOLLIN|EPOLLOUT). 
> 
> lol, I was a bit tired when I wrote that.  Ok, ignore the stuff related 
> to epoll_wait in my previous post.
>  
>> As optimization, if the EPOLLOUT bit is already set, you
>> don't need to 
>> keep calling epoll_ctl(fd,MOD,EPOLLOUT).
> 
> This is good to know.
> 
> So, I've got a few questions about what happens to data that accumulates 
> while I am sending and the fd is set to EPOLLOUT?  If I am send out a 
> large buffer and incoming data wants to stream in on a full duplex 
> connection, what happens to that data when I am processing the socket 
> while it is in epollout mode?  
> 
> Is the following accurate?  When data comes in while I am sending, I guess 
> the data fills up the receive buffers until they are full and then it 
> stops accepting data until it is cleared out?  When I switch back to 
> EPOLLIN, I'm guessing that I will get a notification on that fd that there 
> is data waiting.
> 
> The other question I have is there a way to do full-duplex networking so 
> that I can receive network messages while I am sending or vice versa?  It 
> seems that the method of switching the socket between EPOLLIN and EPOLLOUT 
> means that I can't do both operations simultaneously.  Thanks

I don't quite follow. You shouldn't be switching back and forth if 
you're trying to both send and receive, you can be registered for both 
notifications at the same time and respond to whatever notifications 
that you get. If you're not trying to write anything at the moment then 
you shouldn't be registered for EPOLLOUT though, same for reading and 
EPOLLIN.

       reply	other threads:[~2008-10-27  5:59 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <fa.iE6LeMsZ2b+Y7nnAUJEFSvwEiiU@ifi.uio.no>
     [not found] ` <fa.KeDEgbYh8k5LzzH6uv7u00N5twU@ifi.uio.no>
2008-10-27  5:59   ` Robert Hancock [this message]
2008-10-27  0:58 unexpected extra pollout events from epoll Paul P
2008-10-27  1:18 ` Davide Libenzi
2008-10-27  1:23   ` Davide Libenzi
2008-10-27  3:48   ` Paul P
     [not found] <fa.YTdIGxaBsWvyaUnxBGIS1f8F2BM@ifi.uio.no>
2008-10-26 16:43 ` Robert Hancock
  -- strict thread matches above, loose matches on Subject: below --
2008-10-26 14:42 Paul P
2008-10-26 22:07 ` Davide Libenzi
2008-10-26 22:48   ` Paul P
2008-10-26 23:12     ` Davide Libenzi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=490558B5.1060105@shaw.ca \
    --to=hancockr@shaw.ca \
    --cc=davidel@xmailserver.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ppak_98@yahoo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox