From: "David Schwartz" <davids@webmaster.com>
To: "Mike Jagdis" <jaggy@purplet.demon.co.uk>
Cc: <linux-kernel@vger.kernel.org>
Subject: RE: PROBLEM: select() says closed socket readable
Date: Tue, 21 Aug 2001 10:35:10 -0700 [thread overview]
Message-ID: <NOEJJDACGOHCKNCOGFOMIEKBDFAA.davids@webmaster.com> (raw)
In-Reply-To: <3B8223A8.70900@purplet.demon.co.uk>
> David S. Miller wrote:
> > From: Jay Rogers <jay@rgrs.com>
> > Date: Mon, 20 Aug 2001 10:34:09 -0400
> >
> > > Right. It does not block on read, hence it is readable.
> >
> > No, a socket that's never been connected isn't readable, hence
> > select() shouldn't be returning a value of 1 on it.
> >
> > You may read without blocking, select() returns 1.
> By this logic a socket that is set non-blocking should always be
> treated as readable. I think we can all agree that argument is
> flawed :-).
No, because 'select' is defined to work the same on both blocking and
non-blocking sockets. Roughly, select should hit on read if a non-blocking
read wouldn't return 'would block'.
> The prevailing view from other systems appears to be that reading
> from an unconnected (or unconnectING) socket is meaningless so
> the socket is not readable.
So is reading from a closed or errored socket. There is nothing to wait
for, so why should the system call wait?
> Presumably there is a damn good reason, or a standards reference,
> why that is the wrong behaviour and should be changed?
If you think about the cases where someone might actually do this, odds are
you want the application's error handling code to launch. That won't happen
if you never break out of select. However, if you do break out of select, do
a read, and get an error, the problem will then be handled, rather than
ignored.
DS
next prev parent reply other threads:[~2001-08-21 17:35 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-08-18 3:28 PROBLEM: select() says closed socket readable Jay Rogers
2001-08-18 16:27 ` kuznet
2001-08-18 22:52 ` Ton Hospel
2001-08-20 14:34 ` Jay Rogers
2001-08-20 15:03 ` David S. Miller
2001-08-20 15:29 ` Udo A. Steinberg
2001-08-21 9:02 ` Mike Jagdis
2001-08-21 17:35 ` David Schwartz [this message]
2001-08-21 18:38 ` Alan Cox
2001-08-21 19:01 ` David Schwartz
2001-08-22 9:26 ` Mike Jagdis
2001-08-22 21:40 ` David Schwartz
2001-08-23 10:30 ` Mike Jagdis
2001-08-23 10:56 ` [PATCH] " Mike Jagdis
2001-08-20 19:48 ` PROBLEM: " David Schwartz
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=NOEJJDACGOHCKNCOGFOMIEKBDFAA.davids@webmaster.com \
--to=davids@webmaster.com \
--cc=jaggy@purplet.demon.co.uk \
--cc=linux-kernel@vger.kernel.org \
/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