mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jamie Lokier <lk@tantalophile.demon.co.uk>
To: Mark Mielke <mark@mark.mielke.cc>
Cc: Grant Taylor <gtaylor+lkml_ihdeh111902@picante.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [rfc] epoll interface change and glibc bits ...
Date: Tue, 19 Nov 2002 15:24:36 +0000	[thread overview]
Message-ID: <20021119152436.GA6663@bjl1.asuk.net> (raw)
In-Reply-To: <20021119062205.GC17927@mark.mielke.cc>

Mark Mielke wrote:
> On Tue, Nov 19, 2002 at 12:49:16AM -0500, Grant Taylor wrote:
> > For example, sometimes TCP reads return EAGAIN when in fact they have
> > data.  This seems to stem from the case where the signal is found
> > before the first segment copy (from tcp.c circa 1425, there's even a
> > handy FIXME note there).  If you use epoll and get an EAGAIN, you have
> > no idea if it was a signal or a real empty socket unless you are also
> > very careful to notice when you got a signal during the read.
> 
> I hope this isn't a stupid question: Why doesn't the code you speak of
> return EINTR instead of EAGAIN?

Mark's right, it should be EINTR.  EAGAIN shouldn't break any
single-thread user state machines using poll/select, as a non-blocking
read is always allowed to return EAGAIN for any transient reason.

I'm not sure if EAGAIN can cause a poll() wakeup event to be missed.
If so, that would be a TCP bug that breaks epoll, and it would also
break some user state machines using poll/select, when there are
multiple processes waiting on a socket.

-- Jamie

  reply	other threads:[~2002-11-19 15:17 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-19  5:49 Grant Taylor
2002-11-19  6:22 ` Mark Mielke
2002-11-19 15:24   ` Jamie Lokier [this message]
  -- strict thread matches above, loose matches on Subject: below --
2002-11-19 19:33 Grant Taylor
2002-11-19 19:51 ` Davide Libenzi
2002-11-19 20:57   ` Mark Mielke
2002-11-19 20:54     ` Davide Libenzi
2002-11-19 17:28 Dan Kegel
     [not found] <20021118223125.GB14649@mark.mielke.cc>
2002-11-19  0:23 ` Grant Taylor
2002-11-19  3:58   ` Davide Libenzi
2002-11-19  4:04   ` Mark Mielke
2002-11-18 22:21 Dan Kegel
2002-11-18 23:09 ` Davide Libenzi
2002-11-18 23:39   ` Dan Kegel
2002-11-18 23:20     ` Davide Libenzi
2002-11-18 23:52       ` Dan Kegel
2002-11-18 23:35         ` Davide Libenzi
2002-11-19  0:53           ` Dan Kegel
2002-11-19  1:34             ` Davide Libenzi
2002-11-19  2:08               ` Dan Kegel
2002-11-19  2:04                 ` Davide Libenzi
2002-11-19  3:46           ` Edgar Toernig
2002-11-19  4:14             ` Davide Libenzi
2002-11-19  5:35               ` Edgar Toernig
2002-11-19  6:09                 ` Mark Mielke
2002-11-19 17:07                   ` Davide Libenzi
2002-11-20  1:59                 ` Davide Libenzi
2002-11-20  3:09                   ` Jamie Lokier
2002-11-20  3:46                     ` Davide Libenzi
2002-11-20  4:04                     ` Davide Libenzi
2002-11-20  8:01                       ` Mark Mielke
2002-11-20 23:19                         ` Davide Libenzi
2002-11-20 23:51                           ` Mark Mielke
2002-11-20 23:57                             ` Davide Libenzi
2002-11-21  0:28                               ` Jamie Lokier
2002-11-21  1:23                                 ` Mark Mielke
2002-11-21  1:20                                   ` Davide Libenzi
2002-11-21  0:33                               ` Mark Mielke
2002-11-21  0:55                                 ` Jamie Lokier
2002-11-21  1:04                                   ` Davide Libenzi
2002-11-21 20:08                                 ` Denis Vlasenko
2002-11-21 16:51                                   ` Mark Mielke
2002-11-21 17:45                                     ` Davide Libenzi
2002-11-20 22:04                       ` Jamie Lokier
2002-11-20 22:08                         ` Davide Libenzi
2002-11-20 23:28                           ` Jamie Lokier
2002-11-20 23:33                             ` Davide Libenzi
2002-11-20  7:47                     ` Mark Mielke
2002-11-19  3:53         ` Mark Mielke
2002-11-18 22:04 Grant Taylor
2002-11-18 22:32 ` Mark Mielke
2002-11-18 23:07 ` Davide Libenzi
2002-11-18 18:40 Grant Taylor
2002-11-18 16:05 Davide Libenzi
2002-11-18 16:12 ` Jakub Jelinek
2002-11-18 16:15   ` Davide Libenzi
2002-11-18 16:18     ` Jakub Jelinek
2002-11-18 16:32       ` Davide Libenzi
2002-11-18 22:22         ` Matthew D. Hall
2002-11-18 17:51 ` Mark Mielke
2002-11-18 18:37   ` Davide Libenzi
2002-11-18 19:59     ` Ulrich Drepper
2002-11-18 21:31       ` Davide Libenzi
2002-11-18 22:56         ` Jamie Lokier
2002-11-18 23:56           ` Davide Libenzi
2002-11-19  1:34             ` Jamie Lokier
2002-11-19  1:50               ` 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=20021119152436.GA6663@bjl1.asuk.net \
    --to=lk@tantalophile.demon.co.uk \
    --cc=gtaylor+lkml_ihdeh111902@picante.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark@mark.mielke.cc \
    /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

all inboxes | Powered by JetHome®