Timeouts in HEAD ldap code.
Jeremy Allison
jra at samba.org
Wed Jun 1 15:47:15 GMT 2005
On Wed, Jun 01, 2005 at 11:07:16AM +0200, Volker Lendecke wrote:
> On Tue, May 31, 2005 at 05:18:59PM -0700, Jeremy Allison wrote:
> > Now read_data_until() isn't quite right as it calls sys_read() which will
> > block indefinately as it ignores EINTR.
>
> You're sure? sys_read is only called if select indicated that something is
> readable. Reading http://www.opengroup.org/onlinepubs/007908799/xsh/read.html
> I get the impression that EINTR is only returned when there's no data
> available. In all other cases it should return the amount of data actually
> read:
Nope - is a signal is pending or arrives after read have been entered then
it can abort with EINTR. sys_read() explicitly catches and restarts the read()
call.
> [EINTR]
> The read operation was terminated due to the receipt of a signal, and no
> data was transferred.
>
> Is read(2) still an interruptible system call when select has indicated
> readability?
Yes, if a signal arrives between the select() and entering the read().
Jeremy.
More information about the samba-technical
mailing list