def send_event(event)
      @lock.synchronize do
        transmission_client_params = {
          max_batch_size: @max_batch_size,
          send_frequency: @send_frequency,
          max_concurrent_batches: @max_concurrent_batches,
          pending_work_capacity: @pending_work_capacity,
          responses: @responses,
          block_on_send: @block_on_send,
          block_on_responses: @block_on_responses,
          user_agent_addition: @user_agent_addition
        }

        @transmission ||= TransmissionClient.new(transmission_client_params)
      end

      @transmission.add(event)
    end
def send_event(event)
      @lock.synchronize do
        transmission_client_params = {
          max_batch_size: @max_batch_size,
          send_frequency: @send_frequency,
          max_concurrent_batches: @max_concurrent_batches,
          pending_work_capacity: @pending_work_capacity,
          responses: @responses,
          block_on_send: @block_on_send,
          block_on_responses: @block_on_responses,
          user_agent_addition: @user_agent_addition
        }

        @transmission ||= TransmissionClient.new(transmission_client_params)
      end

      @transmission.add(event)
    end
Enqueue an event to send.  Sampling happens here, and we will create
 new threads to handle work as long as we haven't gone over max_concurrent_batches and
 there are still events in the queue.

 @param event [Event] the event to send to honeycomb
 @api private