6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# 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.)
@socket.write neg_data
end
end
end
|