From: keiju@... (Keiju ISHITSUKA) Date: 2007-03-13T19:41:13+09:00 Subject: [ruby-dev:30553] help: lib/shell for ruby 1.9 けいじゅ@いしつかです. こんどは, lib/shell を ruby 1.9(YARV)に対応しようと思っているのですが, Thread.criticalを多用しているので, どうしたもんだかと悩んでします. まず, lib/shell では, カレントディレクトリ を Shellオブジェクトごとに 持てるようにしています. で以下のように Thread.critical を用いて他のス レッドが他のスレッドがカレントディレクトリを変更しないようにしています. Thread.critical = true back = Dir.pwd begin Dir.chdir @shell.cwd @files = Dir[pattern] ensure Dir.chdir back Thread.critical = false end umask値も同様にしています. で, これらをThread.criticalを使わないで対応するにはどうすればよいかな と... lib/shell 管理下にあるスレッドなら排他制御はできますが, カレント ディレクトリを変更したりumask値を変更したりする可能性のあるスレッドは 他にもあるわけですから... 何か良い案ないでしょうか? それともう一つ, forkした後の子プロセス側のスレッドはどうするようになり ましたっけ? だいぶ前の版からkillするようになった気もしているのですが? __ ---------------------------------------------------->> 石塚 圭樹 <<--- ---------------------------------->> e-mail: keiju@ishitsuka.com <<---