Feature #14426 » openssl-memory-allocation.patch
ext/openssl/lib/openssl/buffering.rb | ||
---|---|---|
@wbuffer << s
|
||
@wbuffer.force_encoding(Encoding::BINARY)
|
||
@sync ||= false
|
||
if @sync or @wbuffer.size > BLOCK_SIZE or idx = @wbuffer.rindex("\n")
|
||
remain = idx ? idx + 1 : @wbuffer.size
|
||
nwritten = 0
|
||
while remain > 0
|
||
str = @wbuffer[nwritten,remain]
|
||
if @sync or @wbuffer.size > BLOCK_SIZE
|
||
until @wbuffer.empty?
|
||
begin
|
||
nwrote = syswrite(str)
|
||
nwrote = syswrite(@wbuffer)
|
||
rescue Errno::EAGAIN
|
||
retry
|
||
end
|
||
remain -= nwrote
|
||
nwritten += nwrote
|
||
@wbuffer[0, nwrote] = ""
|
||
end
|
||
@wbuffer[0,nwritten] = ""
|
||
end
|
||
end
|
||