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
Constructor Details
#initialize(limit = 1, **options) ⇒ LimitedQueue
Create a new limited queue.
132
133
134
|
# File 'lib/async/queue.rb', line 132
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
137
138
139
|
# File 'lib/async/queue.rb', line 137
def limit
@delegate.max
end
|
Class Method Details
.new ⇒ Object
122
123
124
125
126
|
# File 'lib/async/queue.rb', line 122
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
137
138
139
|
# File 'lib/async/queue.rb', line 137
def limit
@delegate.max
end
|
#limited? ⇒ Boolean
142
143
144
|
# File 'lib/async/queue.rb', line 142
def limited?
!@delegate.closed? && @delegate.size >= @delegate.max
end
|