File: C:/Ruby27-x64/share/ri/2.7.0/system/OpenSSL/Buffering/write_nonblock-i.ri
U:RDoc::AnyMethod[iI"write_nonblock:ETI"&OpenSSL::Buffering#write_nonblock;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph; [I"+Writes _s_ 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@o;
; [I"OBy specifying a keyword argument _exception_ to +false+, you can indicate ;TI"Jthat write_nonblock should not raise an IO::Wait*able exception, but ;TI"Dreturn the symbol +:wait_writable+ or +:wait_readable+ instead.;T:
@fileI")ext/openssl/lib/openssl/buffering.rb;T:0@omit_headings_from_table_of_contents_below000[ I"(s, exception: true);T@:FI"Buffering;TcRDoc::NormalModule00