Sha256: 1bc3a303fdf9d5c19936192f85c80285428ded8e89a11ddfb35f0e923fd6f692

Contents?: true

Size: 375 Bytes

Versions: 35

Compression:

Stored size: 375 Bytes

Contents

require "thread"

module Errplane
  class MaxQueue < Queue
    attr_reader :max

    def initialize(max = 10_000)
      raise ArgumentError, "queue size must be positive" unless max > 0
      @max = max
      Errplane::Worker.spawn_threads if Errplane::Worker.current_thread_count.zero?
      super()
    end

    def push(obj)
      super if length < @max
    end
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
errplane-1.0.15 lib/errplane/max_queue.rb
errplane-1.0.14 lib/errplane/max_queue.rb
errplane-1.0.13 lib/errplane/max_queue.rb
errplane-1.0.11 lib/errplane/max_queue.rb
errplane-1.0.10 lib/errplane/max_queue.rb
errplane-1.0.9 lib/errplane/max_queue.rb
errplane-1.0.8 lib/errplane/max_queue.rb
errplane-1.0.7 lib/errplane/max_queue.rb
errplane-1.0.6 lib/errplane/max_queue.rb
errplane-1.0.5 lib/errplane/max_queue.rb
errplane-1.0.4 lib/errplane/max_queue.rb
errplane-1.0.3 lib/errplane/max_queue.rb
errplane-1.0.2 lib/errplane/max_queue.rb
errplane-1.0.1 lib/errplane/max_queue.rb
errplane-1.0.0 lib/errplane/max_queue.rb
errplane-0.6.10 lib/errplane/max_queue.rb
errplane-0.6.9 lib/errplane/max_queue.rb
errplane-0.6.8 lib/errplane/max_queue.rb
errplane-0.6.7 lib/errplane/max_queue.rb
errplane-0.6.6 lib/errplane/max_queue.rb