Sha256: 277b58b01eb4e0c076e8e5f53c69411444288390586be33dafb81c47f3ea9aee
Contents?: true
Size: 819 Bytes
Versions: 3
Compression:
Stored size: 819 Bytes
Contents
# frozen_string_literal: true module GrpcKit module Session class ControlQueue def initialize(waker: proc { }) @event_stream = Queue.new @waker = waker end # Be nonblocking def pop if @event_stream.empty? nil else @event_stream.pop(true) end rescue ThreadError => _ nil end def submit_response(id, headers) @event_stream.push([:submit_response, id, headers]) @waker.call(:submit_response) end def submit_headers(id, headers) @event_stream.push([:submit_headers, id, headers]) @waker.call(:submit_headers) end def resume_data(id) @event_stream.push([:resume_data, id]) @waker.call(:submit_response) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
grpc_kit-0.5.1 | lib/grpc_kit/session/control_queue.rb |
grpc_kit-0.5.0 | lib/grpc_kit/session/control_queue.rb |
grpc_kit-0.4.0 | lib/grpc_kit/session/control_queue.rb |