[Ruby] Thread#initialize の再定義(その3)
完全に勘違いしていた。
class Thread
alias :org_initialize :initialize
def initialize(*arg, &block)
puts "OleInitialize call"
org_initialize(*arg, &block)
end
end
では全然駄目。
やりたいことは、
Thread.new {
puts "thread proc"
}
としたとき
Thread.new {
puts "OleInitialize"
puts "thread proc"
puts "OleUninitialize"
}
となるように Thread#initialize を再定義すること。
もう一歩進めると
Thread.new {
puts "OleInitialize"
begin
puts "thread proc"
ensure
puts "OleUninitialize"
end
}
となるように Thread#initialize を再定義すること。
| 固定リンク
この記事へのコメントは終了しました。
コメント