[Live-devel] Correct use of 'select' to avoid packet loss in Linux+BSD; correct use of WSAGetLastError and codes

Ross Finlayson finlayson at live555.com
Wed Apr 15 07:45:35 PDT 2009


>On Thu, Apr 9, 2009 at 9:52 AM, Ross Finlayson <finlayson at live555.com> wrote:
>>  Thanks for the suggestion; I like this.
>>
>>  Unless anyone sees a problem with this, I will include it in the next
>>  release of the software.
>
>Hello,
>
>On Linux, select() is implemented above poll().

What do you mean by this?


>  In net/core/datagram.c
>(linux 2.6.26 sources), in datagram_poll() you can see the lines that
>check for readable event on the socket :
>
>        /* readable? */
>         if (!skb_queue_empty(&sk->sk_receive_queue) ||
>             (sk->sk_shutdown & RCV_SHUTDOWN))
>                 mask |= POLLIN | POLLRDNORM;
>
>The event is set if the socket input buffer is not empty.

So what is your conclusion?  Are you implying that we should (on Unix 
systems) be using "poll()" instead of "select()", and that if we use 
"poll()", we won't need the optimization that Bryan Moore proposed? 
Or are you implying that we don't need this optimization even if we 
use "select()"??
-- 

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


More information about the live-devel mailing list