2000-11-05 06:44:16

by David Feuer

[permalink] [raw]
Subject: Select

In the discussion on "select bug", some people noted that select does not
wake up a process until the buffer is half full (or all full, or
whatever). Does this mean that if a small amount is written to the
device/pipe the process may never be woken? Or is there a time limit that
wakes up the process after a certain amount of time if there are _any_
bytes in the pipe/dev?

--
This message has been brought to you by the letter alpha and the number pi.
David Feuer
[email protected]


2000-11-05 09:49:21

by Andi Kleen

[permalink] [raw]
Subject: Re: Select

On Sun, Nov 05, 2000 at 01:46:19AM -0500, David Feuer wrote:
> In the discussion on "select bug", some people noted that select does not
> wake up a process until the buffer is half full (or all full, or
> whatever). Does this mean that if a small amount is written to the
> device/pipe the process may never be woken? Or is there a time limit that
> wakes up the process after a certain amount of time if there are _any_
> bytes in the pipe/dev?

This only applies to POLLOUT. Yes, if an send buffer stays 90%
full forever you may be never woken up.

In case of a TCP socket you would be at worst waken up after considerable
time with a ETIMEDOUT.

Pipes do not signal writable until the pipe is empty.


-Andi

2000-11-05 12:19:12

by Alan Cox

[permalink] [raw]
Subject: Re: Select

> wake up a process until the buffer is half full (or all full, or
> whatever). Does this mean that if a small amount is written to the

Writer not reader