Class: Async::LimitedQueue
- Inherits:
-
Queue
- Object
- Queue
- Async::LimitedQueue
show all
- Defined in:
- lib/async/queue.rb,
lib/async/limited_queue.rb
Overview
A thread-safe queue which limits the number of items that can be enqueued.
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Queue
#<<, #async, #close, #closed?, #dequeue, #each, #empty?, #enqueue, #pop, #push, #signal, #size, #wait, #waiting_count
Constructor Details
#initialize(limit = 1, **options) ⇒ LimitedQueue
Create a new limited queue.
141
142
143
|
# File 'lib/async/queue.rb', line 141
def initialize(limit = 1, **options)
super(**options, delegate: Thread::SizedQueue.new(limit))
end
|
Instance Attribute Details
#The maximum number of items that can be enqueued.(maximumnumberofitemsthatcanbeenqueued.) ⇒ Object
146
147
148
|
# File 'lib/async/queue.rb', line 146
def limit
@delegate.max
end
|
Class Method Details
.new ⇒ Object
131
132
133
134
135
|
# File 'lib/async/queue.rb', line 131
def self.new(...)
warn("`require 'async/limited_queue'` to use `Async::LimitedQueue`.", uplevel: 1, category: :deprecated) if $VERBOSE
super
end
|
Instance Method Details
#limit ⇒ Object
146
147
148
|
# File 'lib/async/queue.rb', line 146
def limit
@delegate.max
end
|
#limited? ⇒ Boolean
151
152
153
|
# File 'lib/async/queue.rb', line 151
def limited?
!@delegate.closed? && @delegate.size >= @delegate.max
end
|