class Async::IO::Generic

def wrap(*args)

Instantiate a wrapped instance of the class, and optionally yield it to a given block, closing it afterwards.
def wrap(*args)
	wrapper = self.new(@wrapped_klass.new(*args))
	
	return wrapper unless block_given?
	
	begin
		yield wrapper
	ensure
		wrapper.close
	end
end