當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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類。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。