|
From: Les M. <le...@fu...> - 2007-10-26 23:00:21
|
John Rouillard wrote:
> Do you mean this select?
>
>>> select(2, NULL, [1], NULL, {60, 0}) = 1 (out [1], left (line 2799)
>>> {60, 0})
>
> My C is rusty, but I think that means:
>
> look at no fd's for reading and fd 1 for writing and no fd's for
> errors. Time out in 60.000 seconds.
>
> What I am not sure of is why the first argument is 2. I would expect
> that if the [1] was [1, 2] with two fd's. Since there is
> only one fd in the set (namely fd 1), I would expect the 2 to be 1.
I guess I had that backwards - the first argument is really the highest
numbered fd to consider plus 1.
> again indicates that fd 1 is available for writing. an 8 byte write is
> done then fd 0 is checked to see if there is anything to read
>
>>> write(1, "\4\0\0\7\377\377\377\377", 8) = 8
>>> select(1, [0], [], NULL, {60, 0}) = 0 (Timeout)
>
> and there never is anything to read.
>
> So by that point it is waiting for data/info from the server and there
> is no data forthcoming. Can you point out where my analysis is wrong?
Yes, I think that is right. I wonder if that 8-byte write is sitting in
a buffer somewhere. Did this break on previously working machines or
have you always had this problem?
--
Les Mikesell
le...@fu...
|