module H2::Blockable

Public Instance Methods

block!(timeout = nil) click to toggle source
# File lib/h2.rb, line 106
def block! timeout = nil
  @mutex.synchronize { @condition.wait @mutex, timeout } if @condition
end
init_blocking() click to toggle source
# File lib/h2.rb, line 101
def init_blocking
  @mutex = Mutex.new
  @condition = ConditionVariable.new
end
unblock!(remove_condition: true) click to toggle source
# File lib/h2.rb, line 110
def unblock! remove_condition: true
  return unless @condition
  @mutex.synchronize do
    @condition.broadcast
    @condition = nil if remove_condition
  end
end