123456789_123456789_123456789_123456789_123456789_

Exception: Ractor::ClosedError

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: StopIteration
Defined in: ractor.c,
ractor.c

Overview

Raised when an attempt is made to send a message to a closed port, or to retrieve a message from a closed and empty port. Ports may be closed explicitly with Ractor#close_outgoing/close_incoming and are closed implicitly when a ::Ractor terminates.

r = Ractor.new { sleep(500) }
r.close_outgoing
r.take # Ractor::ClosedError

ClosedError is a descendant of ::StopIteration, so the closing of the ractor will break the loops without propagating the error:

r = Ractor.new do
  loop do
    msg = receive # raises ClosedError and loop traps it
    puts "Received: #{msg}"
  end
  puts "loop exited"
end

3.times{|i| r << i}
r.close_incoming
r.take
puts "Continue successfully"

This will print:

Received: 0
Received: 1
Received: 2
loop exited
Continue successfully

Class Attribute Summary

::Exception - Inherited

.to_tty?

Returns true if exception messages will be sent to a tty.

Class Method Summary

::Exception - Inherited

.exception

With no argument, or if the argument is the same as the receiver, return the receiver.

.new

Construct a new ::Exception object, optionally passing in a message.

Instance Method Summary

::StopIteration - Inherited

#result

Returns the return value of the iterator.

::Exception - Inherited

#==

Equality—If obj is not an ::Exception, returns false.

#backtrace

Returns any backtrace associated with the exception.

#backtrace_locations

Returns any backtrace associated with the exception.

#cause

Returns the previous exception ($!) at the time this exception was raised.

#detailed_message

Processes a string returned by #message.

#exception

With no argument, or if the argument is the same as the receiver, return the receiver.

#full_message

Returns formatted string of exception.

#inspect

Return this exception’s class name and message.

#message

Returns the result of invoking exception.to_s.

#set_backtrace

Sets the backtrace information associated with exc.

#to_s

Returns exception’s message (or the name of the exception if no message is set).

Constructor Details

This class inherits a constructor from Exception