netdev
[Top] [All Lists]

Re: select implementation not POSIX compliant?

To: khandelw@xxxxxxxxxx
Subject: Re: select implementation not POSIX compliant?
From: Nick Palmer <nick@xxxxxxxxxxxxx>
Date: Fri, 13 Aug 2004 13:13:38 -0700
Cc: Alex Riesen <fork0@xxxxxxxxxxxxxxxxxxxxx>, linux-kernel <linux-kernel@xxxxxxxxxxxxxxx>, netdev@xxxxxxxxxxx
In-reply-to: <1092256397.512046f64c822@system.cs.fsu.edu>
References: <20040811194018.GA3971@steel.home> <1092256397.512046f64c822@system.cs.fsu.edu>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mozilla Thunderbird 0.5 (X11/20040405)
khandelw@xxxxxxxxxx wrote:
> select should work for any type of socket. Its based on the type of file
> descriptor not whether it is stream/dgram.

Agreed, but as Alex Riesen has shown with his test case, the behavior
differs based on the type of socket. This doesn't seem quite right, but
was not my original point.

> so why should recvmsg return error???? upon closing the socket in other thread?
> wouldn't the socket linger around for some time...


Only if SO_LINGER is on, and then only for the linger time. I would
expect recvmsg to set errno to EINTR or EINVAL indicating that the recv
message was interrupted or is no longer valid since the socket has
closed. This is not the case. Instead it returns 0, and doesn't set errno.

-Nick

<Prev in Thread] Current Thread [Next in Thread>