##
# Select() examines the I/O descriptor sets who are passed in
# +read_array+, +write_array+, and +error_array+ to see if some of their descriptors are
# ready for reading, are ready for writing, or have an exceptions pending.
#
# If +timeout+ is not nil, it specifies a maximum interval to wait
# for the selection to complete. If timeout is nil, the select
# blocks indefinitely.
#
# +write_array+, +error_array+, and +timeout+ may be left as nil if they are
# unimportant