read with timeout ??

Chuck Robey chuckr at telenix.org
Fri Aug 8 20:27:42 UTC 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Pieter de Goeje wrote:
> On Friday 08 August 2008, Carlos A. M. dos Santos wrote:
>> On Thu, Aug 7, 2008 at 10:14 PM, Nate Eldredge <neldredge at math.ucsd.edu> 
> wrote:
>>> On Thu, 7 Aug 2008, Chuck Robey wrote:
>>>> -----BEGIN PGP SIGNED MESSAGE-----
>>>> Hash: SHA1
>>>>
>>>> I have my head lost in a code problem.  I just hit a point where I need
>>>> to do a
>>>> read from an fd, but I need to associate it with a timeout, on the order
>>>> of 1
>>>> second, something like that.  I had the feeling that there's a function
>>>> in FreeBSD's libc that makes that simple, but I forget the function
>>>> name.  If anyone can remember something like what I'm talking about, I
>>>> sure would appreciate a function name.  I can figure out how it works,
>>>> if I could only
>>>> dredge up that name.
>>> man 2 select
>> If the fd is a socket then you can also use setsockopt(2) to set
>> SO_RCVTIMEO and check for EWOULDBLOCK (same as EAGAIN) upon read(2) or
>> recv(2) errors. The net effect is the same of using select but the
>> syntax is simpler, IMO.
> 
> I think poll(2) is also simpler than select for this purpose. 
> 

It does look like that, I need to check the implementation a bit, because the
name of this thing makes me really suspicious about how often it checks for an
fd for being ready for a read.  I know select comes right back, I was under the
impression that poll didn't use signals to do this.

Anyhow, I sure do appreciate the hint, that's just exactly what I was asking
for.  Spending the time figuring it all out, that'll actually be fun for  me.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkicrC8ACgkQz62J6PPcoOmYjACfWP/IGjSvak1hLYSJwWBKkTjb
8qUAoJfSYOZcPJKMqqUb3Y1mltG51sgI
=USHT
-----END PGP SIGNATURE-----


More information about the freebsd-hackers mailing list