mirror of
https://github.com/puma/puma.git
synced 2022-11-09 13:48:40 -05:00
761fbafb8d
* Test adding connection to Reactor after shutdown Modifies `TestPumaServer#shutdown_requests` to pause `Reactor#add` until after shutdown begins, to ensure requests are handled correctly for this edge case. Adds unit-test coverage for the fix introduced in #2377 and updated in #2279. * Fix Queue#close implementation for Ruby 2.2 Allow `ClosedQueueError` to be raised when `Queue#<<` is called. * Pass `@block` directly instead of `@block.method(:call)`
25 lines
541 B
Ruby
25 lines
541 B
Ruby
# Queue#close was added in Ruby 2.3.
|
|
# Add a simple implementation for earlier Ruby versions.
|
|
unless Queue.instance_methods.include?(:close)
|
|
class ClosedQueueError < StandardError; end
|
|
module Puma
|
|
module QueueClose
|
|
def initialize
|
|
@closed = false
|
|
super
|
|
end
|
|
def close
|
|
@closed = true
|
|
end
|
|
def closed?
|
|
@closed
|
|
end
|
|
def push(object)
|
|
raise ClosedQueueError if @closed
|
|
super
|
|
end
|
|
alias << push
|
|
end
|
|
Queue.prepend QueueClose
|
|
end
|
|
end
|