D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
alt
/
ruby34
/
share
/
ri
/
system
/
Ractor
/
ClosedError
/
Filename :
cdesc-ClosedError.ri
back
Copy
U:RDoc::NormalClass[iI"ClosedError:ETI"Ractor::ClosedError;TI"StopIteration;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[ I"HRaised when an attempt is made to send a message to a closed port, ;TI"<or to retrieve a message from a closed and empty port. ;TI"NPorts may be closed explicitly with Ractor#close_outgoing/close_incoming ;TI"8and are closed implicitly when a Ractor terminates.;To:RDoc::Markup::BlankLine o:RDoc::Markup::Verbatim;[I"#r = Ractor.new { sleep(500) } ;TI"r.close_outgoing ;TI""r.take # Ractor::ClosedError ;T:@format0o; ;[I"[ClosedError is a descendant of StopIteration, so the closing of the ractor will break ;TI"-the loops without propagating the error:;T@o;;[I"r = Ractor.new do ;TI" loop do ;TI"> msg = receive # raises ClosedError and loop traps it ;TI"! puts "Received: #{msg}" ;TI" end ;TI" puts "loop exited" ;TI" end ;TI" ;TI"3.times{|i| r << i} ;TI"r.close_incoming ;TI"r.take ;TI""puts "Continue successfully" ;T;0o; ;[I"This will print:;T@o;;[ I"Received: 0 ;TI"Received: 1 ;TI"Received: 2 ;TI"loop exited ;TI"Continue successfully;T;0: @fileI" ractor.c;T:0@omit_headings_from_table_of_contents_below0; 0;0[ [ [ [[I" class;T[[:public[ [:protected[ [:private[ [I" instance;T[[;[ [;[ [;[ [ [U:RDoc::Context::Section[i 0o;;[ ; 0;0[@6I"Ractor;TcRDoc::NormalClass