Class: Puma::MiniSSL::Socket
Relationships & Source Files | |
Inherits: | Object |
Defined in: | lib/capybara/registrations/patches/puma_ssl.rb |
Instance Method Summary
Instance Method Details
#read_nonblock(size, *_)
[ GitHub ]# File 'lib/capybara/registrations/patches/puma_ssl.rb', line 6
def read_nonblock(size, *_) wait_states = %i[wait_readable wait_writable] loop do output = engine_read_all return output if output data = @socket.read_nonblock(size, exception: false) raise IO::EAGAINWaitReadable if wait_states.include? data return nil if data.nil? @engine.inject(data) output = engine_read_all return output if output while (neg_data = @engine.extract) @socket.write neg_data end end end