Linux heracles.o2switch.net 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
/
opt
/
alt
/
ruby21
/
share
/
ri
/
2.1.0
/
system
/
OpenSSL
/
Buffering
/
//opt/alt/ruby21/share/ri/2.1.0/system/OpenSSL/Buffering/read_nonblock-i.ri
U:RDoc::AnyMethod[iI"read_nonblock:EFI"%OpenSSL::Buffering#read_nonblock;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph; [I"=Reads at most +maxlen+ bytes in the non-blocking manner.;To:RDoc::Markup::BlankLine o; ; [I"9When no data can be read without blocking it raises ;TI"MOpenSSL::SSL::SSLError extended by IO::WaitReadable or IO::WaitWritable.;T@o; ; [I"JIO::WaitReadable means SSL needs to read internally so read_nonblock ;TI"?should be called again when the underlying IO is readable.;T@o; ; [I"KIO::WaitWritable means SSL needs to write internally so read_nonblock ;TI"@should be called again after the underlying IO is writable.;T@o; ; [I"IOpenSSL::Buffering#read_nonblock needs two rescue clause as follows:;T@o:RDoc::Markup::Verbatim; [I"-# emulates blocking read (readpartial). ;TI"begin ;TI"* result = ssl.read_nonblock(maxlen) ;TI"rescue IO::WaitReadable ;TI" IO.select([io]) ;TI" retry ;TI"rescue IO::WaitWritable ;TI" IO.select(nil, [io]) ;TI" retry ;TI" end ;T:@format0o; ; [I"LNote that one reason that read_nonblock writes to the underlying IO is ;TI"Nwhen the peer requests a new TLS/SSL handshake. See openssl the FAQ for ;TI";more details. http://www.openssl.org/support/faq.html;T: @fileI")ext/openssl/lib/openssl/buffering.rb;T:0@omit_headings_from_table_of_contents_below000[ I"'(maxlen, buf=nil, exception: true);T@/FI"Buffering;FcRDoc::NormalModule00