Re: select for UNIX sockets?

From: MarKol (markol4@wp.pl)
Date: Mon Jun 09 2003 - 11:46:40 EST


Hi

----- Original Message -----
From: "David Schwartz" <davids@webmaster.com>
> Suppose, for example, a machine has two network interfaces. One is
very
> busy, queue full, and one is totally idle, queue empty. What do you
think
> 'select' for write on an unconnected UDP socket should do?

There is an internal buffer for this UDP socket. Select() should depend
on it's state.
I heard that SO_SNDLOWAT i SO_RCVLOWAT might be useful in this approach,
but it is not implemented in Linux.

Moreover my example uses AF_UNIX socket and AFAIK this should be
reliable communication.
I don't know why are you taking about network interfaces in this
context?

This quotation is taken from man select:
"
       Three independent sets of descriptors are watched. Those
       listed in readfds will be watched to see if characters
       become available for reading (more precisely, to see if a
       read will not block - in particular, a file descriptor is
       also ready on end-of-file), those in writefds will be
       watched to see if a write will not block, and those in
       exceptfds will be watched for exceptions."

and this from man socket:
" Socket creates an endpoint for communication and returns a
       descriptor. "

I'm aware of the fact that my english is rather poor, but I see that
socket returns a descriptor, and select is watching descriptors and
returns descriptors ready for writing if a write operation will not
block.

I would agree with you if my program wouldn't work on Solaris or QNX.
But it works on both and it looks consistent with man!

Regards

--
Marek Kolacz

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Jun 15 2003 - 22:00:21 EST