




 
A list, each member of which is a socket-stream.
A function of no arguments.
A string.
A real number or 
nil
.
The function 
wait-for-input-streams
 waits for any of the streams in the argument 
streams
 to be ready for input. "Ready for input"  typically means that some input is available from the stream, but can also means that the peer closed the connection or there is an attempt to connect to the socket. Note that this function first checks the buffer for buffered streams.
When any of the streams is ready for input, 
wait-for-input-streams
 returns a list of all the streams that are ready, in the same order that they appear in 
streams
.
If 
timeout
 is non-
nil
 it must be a real number, specifying a timeout in seconds. If  
timeout
 seconds pass and none of the streams is ready, 
wait-for-input-streams
 returns 
nil
.
If 
timeout
 is 0, 
wait-for-input-streams
 returns all of the streams that are ready immediately, without waiting at all. That is, it behaves like 
listen
 on many streams.
If 
wait-function
 is supplied, it is called periodically with no arguments, and if it returns non-
nil
 then 
wait-for-input-streams
 returns 
nil
. Note that, like the 
wait-function
 of process-wait, 
wait-function
 is called often and on other threads, so need to be an inexpensive call and independent of dynamic context.
If 
wait-reason
 is supplied it is used as the 
wait-reason
 for the Lisp process that calls 
wait-for-input-streams
 while it is waiting.
Note:
 
wait-for-input-streams
 may return the list 
streams
 that was passed to it as is, if all the streams are ready.