class Async::IO::SSLServer

def accept(task: Task.current)

def accept(task: Task.current)
	peer, address = @server.accept
	
	wrapper = SSLSocket.new(peer, @context)
	
	return wrapper, address unless block_given?
	
	task.async do
		task.annotate "accepting secure connection #{address.inspect}"
		
		begin
			# You want to do this in a nested async task or you might suffer from head-of-line blocking.
			wrapper.accept
			
			yield wrapper, address
		rescue
			Async.logger.error(self) {$!}
		ensure
			wrapper.close
		end
	end
end