class GrpcKit::Session::ControlQueue
Public Class Methods
new(waker: proc { })
click to toggle source
# File lib/grpc_kit/session/control_queue.rb, line 6 def initialize(waker: proc { }) @event_stream = Queue.new @waker = waker end
Public Instance Methods
pop()
click to toggle source
Be nonblocking
# File lib/grpc_kit/session/control_queue.rb, line 12 def pop if @event_stream.empty? nil else @event_stream.pop(true) end rescue ThreadError => _ nil end
resume_data(id)
click to toggle source
# File lib/grpc_kit/session/control_queue.rb, line 32 def resume_data(id) @event_stream.push([:resume_data, id]) @waker.call(:submit_response) end
submit_headers(id, headers)
click to toggle source
# File lib/grpc_kit/session/control_queue.rb, line 27 def submit_headers(id, headers) @event_stream.push([:submit_headers, id, headers]) @waker.call(:submit_headers) end
submit_response(id, headers)
click to toggle source
# File lib/grpc_kit/session/control_queue.rb, line 22 def submit_response(id, headers) @event_stream.push([:submit_response, id, headers]) @waker.call(:submit_response) end