def new_async_span(name, kvs = {})
      new_span = Span.new(name, @id, parent_id: @current_span.id)
      new_span.set_tags(kvs) unless kvs.empty?
      new_span.parent = @current_span
      new_span[:deferred] = @has_async = true

      # Add the new span to the span collection
      @spans.add(new_span)
      new_span
    end
def new_async_span(name, kvs = {})
      new_span = Span.new(name, @id, parent_id: @current_span.id)
      new_span.set_tags(kvs) unless kvs.empty?
      new_span.parent = @current_span
      new_span[:deferred] = @has_async = true

      # Add the new span to the span collection
      @spans.add(new_span)
      new_span
    end
Asynchronous Methods

 Start a new asynchronous span

 The major differentiator between this method and simple new_span is that
 this method doesn't affect @current_trace and instead returns an
 ID pair that can be used later to close out the created async span.

 @param name [String] the name of the span to start
 @param kvs [Hash] list of key values to be reported in the span