Module: sio

poll/2 — Determine whether I/O is possible


poll(Stream_or_Alias, TimeOut)


poll/2 will wait at most TimeOut microseconds and then succeed if a non-blocking I/O operation may be started on the stream associated with Stream_or_Alias. Failure will occur if the I/O operation would block.


Stream_or_Alias is a variable

– – – – > instantiation_error.

Stream_or_Alias is neither a variable nor a stream descriptor nor an alias

– – – – > domain_error(stream_or_alias, Stream_or_Alias) .

Stream_or_Alias is not associated with an open stream

– – – – > existence_error(stream, Stream_or_Alias) .

TimeOut is a variable

– – – – > instantiation_error.

TimeOut is not an integer

– – – – > type_error(integer, TimeOut) .


Note that an input operation such as read/2 may block anyway if there is insufficient input to syntactically complete the term and the terminating full-stop. It is possible for poll to succeed when only the first character of the term is ready. The open/[3,4] option, snr_action, is better used for situations where reading a term from a stream which might not be ready is desirable.