[#30408] Ruby 1.8.6 preview2 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 preview2 をリリースしました。

20 messages 2007/02/24
[#30414] fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released) — Hidetoshi NAGAI <nagai@...> 2007/02/25

永井@知能.九工大です.

[#30418] Re: fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released) — Nobuyoshi Nakada <nobu@...> 2007/02/25

なかだです。

[ruby-dev:30415] システムコールでブロック中の割り込み処理

From: Shugo Maeda <shugo@...>
Date: 2007-02-25 14:19:41 UTC
List: ruby-dev #30415
前田です。

Urabe Shyouhei wrote:
> Shugo Maeda wrote:
>> # そういえば、ruby_1_8_5のsignal.cの話はmputさんに伝わってるん
>> # でしたっけ。
>>   
> 
> 伝わってないっす。詳細希望。

ruby_1_8では直っているんですが、1.8.5では特定のプラットフォーム
(自分が確認したのはLinxu)で、flockなどのシステムコールでブロック
している時に割り込みが効かない問題があるようです。

trap(:INT) do
  p :INT
  exit!
end
f = open("/tmp/lock", "w")
f.flock(File::LOCK_EX)
p :locked
sleep

こんなスクリプトを二つ動かして、後で動かした方でCtrl-Cを押すと再現
します。
ruby_1_8だと:INTと出力して終了しますが、ruby_1_8_5ではflockでロック
を獲得して戻って来るまで何も起こりません。

ruby_1_8で修正されたリビジョンは11203ですが、二つある修正のうち、

        * signal.c (ruby_signal): don't set SA_RESTART.  a backport from
          the HEAD.  [ruby-talk:220937]  [ruby-talk:147220]

の方が上記の問題の修正です。

-- 
前田 修吾

In This Thread