class Async::IO::Generic

def async_send(*args, timeout: self.timeout)

def async_send(*args, timeout: self.timeout)
	while true
		result = @io.__send__(*args, exception: false)
		
		case result
		when :wait_readable
			wait_readable(timeout)
		when :wait_writable
			wait_writable(timeout)
		else
			return result
		end
	end
end