Module: H2::Blockable

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

Instance Method Summary collapse

Instance Method Details

#block!(timeout = nil) ⇒ Object



107
108
109
# File 'lib/h2.rb', line 107

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

#init_blockingObject



102
103
104
105
# File 'lib/h2.rb', line 102

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

#unblock!Object



111
112
113
114
115
116
117
# File 'lib/h2.rb', line 111

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