I don't think that's a hot idea. The return value of select() is an int for 
reason and not merely true or false. It's supposed to return the number of 
file descriptors that are ready for reading, writing or exceptions. 
According to the man file:

"On success, select and pselect return the number of descriptors contained 
in the descriptor sets, which may be zero if  the  timeout expires before 
anything interesting happens.  On error, -1 is returned, and errno is set 
appropriately; the sets and timeout become undefined, so do not rely on 
their contents after an error."

Returning true or false probably isn't a good idea -- how are you supposed 
to know how many file descriptors are available if the answer is either 1 
or 0?

Another function may be needed that can take a peek at the number of ready 
file descriptors if you really want socket_select() to return true/false. 
I'm thinking that this functionality is a bit too far removed from the 
standard select() call, though. (Although without the functions equivalent 
to the FD_* macros', the extension as a whole is getting pretty far removed 
from the standard sockets library as it is.)

J


Jason Greene wrote:

>> 
>> The way I would go about fixing it would be to change socket_select() to
>> return true or false, and if there was an error (as indicated by retval),
>> store errno somewhere and let socket_last_error()/socket_clear_error()
>> retrieve that value if there isn't a socket specified.
> 
> I agree with this approach, however, IMO this is a functionality
> enhancement (soring a global last error), and probably should wait till
> 4.3.0.
> 
> Thoughts anyone?
> 


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to