Module: H2::Blockable
- Included in:
- Client, Client::ReadGate, Stream
- Defined in:
- lib/h2.rb
Instance Method Summary collapse
Instance Method Details
#block!(timeout = nil) ⇒ Object
106 107 108 |
# File 'lib/h2.rb', line 106 def block! timeout = nil @mutex.synchronize { @condition.wait @mutex, timeout } if @condition end |
#init_blocking ⇒ Object
101 102 103 104 |
# File 'lib/h2.rb', line 101 def init_blocking @mutex = Mutex.new @condition = ConditionVariable.new end |
#unblock!(remove_condition: true) ⇒ Object
110 111 112 113 114 115 116 |
# 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 |