当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby ClosedError类用法及代码示例


本文简要介绍ruby语言中 Ractor::ClosedError类 的用法。

当尝试将消息发送到关闭的端口或从关闭的空端口检索消息时引发。端口可以使用 Ractor#close_outgoing /close_incoming 显式关闭,并在 Ractor 终止时隐式关闭。

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

ClosedError StopIteration 的后代,因此关闭 ractor 将打破循环而不传播错误:

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"

这将打印:

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

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 ClosedError类。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。