Watch for changes in the states of several sockets.

Property definitions

socket $ SocketObserver :: select
	# Watch for changes in the states of several sockets.
	fun select(max: Socket, seconds: Int, microseconds: Int): Bool
	do
		# FIXME this implementation (see the call to nullable attributes below) and
		# `NativeSockectObserver::select` is not stable.

		var timeval = new NativeTimeval(seconds, microseconds)
		var rd = if read_set != null then read_set.as(not null).native else null
		var wrt = if write_set != null then write_set.as(not null).native else null
		var expt = if except_set != null then except_set.as(not null).native else null
		return native.select(max.native, rd, wrt, expt, timeval) > 0
	end
lib/socket/socket.nit:329,2--340,4