borrow_or_take

in lib/aws-xray-sdk/sampling/reservoir.rb [26:47]


    def borrow_or_take(now, borrowable)
      @lock.synchronize do
        reset_new_sec(now)
        
        if quota_fresh?(now)
          return SamplingDecision::NOT_SAMPLE if @taken_this_sec >= @quota
          @taken_this_sec += 1
          return SamplingDecision::TAKE
        end

        
        if borrowable
          return SamplingDecision::NOT_SAMPLE if @borrowed_this_sec >= 1
          @borrowed_this_sec += 1
          return SamplingDecision::BORROW
        end

        
        SamplingDecision::NOT_SAMPLE
      end
    end