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/write_nonblock-i.ri
U:RDoc::AnyMethod[iI"write_nonblock:EFI"&OpenSSL::Buffering#write_nonblock;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph; [I"-Writes +str+ in the non-blocking manner.;To:RDoc::Markup::BlankLine o; ; [I"EIf there is buffered data, it is flushed first. This may block.;T@o; ; [I"Jwrite_nonblock returns number of bytes written to the SSL connection.;T@o; ; [I"<When no data can be written without blocking it raises ;TI"MOpenSSL::SSL::SSLError extended by IO::WaitReadable or IO::WaitWritable.;T@o; ; [I"KIO::WaitReadable means SSL needs to read internally so write_nonblock ;TI"@should be called again after the underlying IO is readable.;T@o; ; [I"LIO::WaitWritable means SSL needs to write internally so write_nonblock ;TI"<should be called again after underlying IO is writable.;T@o; ; [I"MSo OpenSSL::Buffering#write_nonblock needs two rescue clause as follows.;T@o:RDoc::Markup::Verbatim; [I" # emulates blocking write. ;TI"begin ;TI"( result = ssl.write_nonblock(str) ;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"KNote that one reason that write_nonblock reads from the underlying IO ;TI"Mis when the peer requests a new TLS/SSL handshake. See the openssl FAQ ;TI"?for 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"(s, exception: true);T@5FI"Buffering;FcRDoc::NormalModule00