本文简要介绍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 Closure类用法及代码示例
- Ruby Class类用法及代码示例
- Ruby Class.superclass用法及代码示例
- Ruby Class.inherited用法及代码示例
- Ruby Class.new用法及代码示例
- Ruby Class.allocate用法及代码示例
- Ruby Class.file用法及代码示例
- Ruby Class.subclasses用法及代码示例
- Ruby CStructEntity.[]=用法及代码示例
- Ruby Context.save_history=用法及代码示例
- Ruby CSV.header_convert用法及代码示例
- Ruby Constants模块用法及代码示例
- Ruby CMath tanh()用法及代码示例
- Ruby CSV.skip_lines用法及代码示例
- Ruby CGI.new用法及代码示例
- Ruby Comparable.between?用法及代码示例
- Ruby CGI.print用法及代码示例
- Ruby CGI.http_header用法及代码示例
- Ruby CMath cos()用法及代码示例
- Ruby Complex.arg用法及代码示例
- Ruby CSV.table用法及代码示例
- Ruby CSV.force_quotes?用法及代码示例
- Ruby CParser模块用法及代码示例
- Ruby CSV.unconverted_fields?用法及代码示例
- Ruby ComposedSet类用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 ClosedError类。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。