Module: H2::Blockable

Included in:
Client, Stream
Defined in:
lib/h2.rb

Instance Method Summary collapse

Instance Method Details

#block!(timeout = nil) ⇒ Object



72
73
74
# File 'lib/h2.rb', line 72

def block! timeout = nil
  @mutex.synchronize { @condition.wait @mutex, timeout } if @condition
end

#init_blockingObject



67
68
69
70
# File 'lib/h2.rb', line 67

def init_blocking
  @mutex = Mutex.new
  @condition = ConditionVariable.new
end

#unblock!Object



76
77
78
79
80
81
82
# File 'lib/h2.rb', line 76

def unblock!
  return unless @condition
  @mutex.synchronize do
    @condition.broadcast
    @condition = nil
  end
end