こんにちは、越水です。
まず、Threadなのですけど、下のコードを実行して、
Ctrl-Dを入力しても、puts "die"が実行されないのですが、
何がおかしいのでしょうか?
class MyThread
def doit
@live = true
Thread.start {
while @live
puts "live!"
sleep(1)
end
puts "die" # not executed
}
while (line = $stdin.gets)
end
@live = false
end
end
MyThread.new.doit
次はMarshalなのですけど、下の2つのプログラムをシェルで
`ruby dump.rb | ruby load.rb'とパイプで結んで
実行したのですが、コンソールで文字化けを起こします。
他に何かやっておくことがあるのでしょうか?
# dump.rb
class Foo
def to_s
'foo'
end
end
Marshal.dump(Foo.new, $stdout)
# load.rb
require "dump"
obj = Marshal.load($stdin)
puts obj.to_s
越水
greentea / fa2.so-net.ne.jp