close_incoming by antoher ractor means there is no other messages
will be sent to the ractor, so Ractor.receive will block forever,
and it should raise and stop.

close_outgoing by antoher ractor means, ... I don't have good idea
to use it. It can be a private method.

Ractor#close calls both, but it does not make sense to call
different purpose methods, so I remove it.
This commit is contained in:
Koichi Sasada 2020-11-11 16:15:04 +09:00
Родитель deed21bb08
Коммит fa3670e6e4
2 изменённых файлов: 2 добавлений и 10 удалений

Просмотреть файл

@ -201,8 +201,8 @@ assert_equal 'ok', %q{
# Raise Ractor::ClosedError when try to send into a closed actor
assert_equal 'ok', %q{
r = Ractor.new { Ractor.receive }
r.close_incoming
r.close
begin
r.send(1)
rescue Ractor::ClosedError
@ -219,7 +219,7 @@ assert_equal 'ok', %q{
Ractor.receive
end
r.close
r.close_outgoing
begin
r.take
rescue Ractor::ClosedError

Просмотреть файл

@ -164,14 +164,6 @@ class Ractor
}
end
# Closes both incoming and outgoing ports.
def close
close_incoming
close_outgoing
self
end
# utility method
def self.shareable? obj
__builtin_cexpr! %q{