[#45703] test_advise failure on GNU/Linux — Tanaka Akira <tanaka.akira@...>

今朝、気がついたのですが、手元で test_advise が失敗します。

11 messages 2012/06/05
[#45705] Re: test_advise failure on GNU/Linux — KOSAKI Motohiro <kosaki.motohiro@...> 2012/06/06

小崎です

[#45735] [ruby-trunk - Feature #6587][Open] proposal: adding new methods File.rootname and Pathname#rootname — "usa (Usaku NAKAMURA)" <usa@...>

14 messages 2012/06/14

[#45745] Re: [ruby-changes:24028] yugui:r36079 (trunk): Embedding CRuby interpreter without internal headers has been difficult — SASADA Koichi <ko1@...>

見逃していました.

19 messages 2012/06/14
[#45747] Re: [ruby-changes:24028] yugui:r36079 (trunk): Embedding CRuby interpreter without internal headers has been difficult — Yugui <yugui@...> 2012/06/15

2012/6/15 SASADA Koichi <ko1@atdot.net>:

[#45748] Re: [ruby-changes:24028] yugui:r36079 (trunk): Embedding CRuby interpreter without internal headers has been difficult — SASADA Koichi <ko1@...> 2012/06/15

 ささだです.

[#45794] :new_pgroup and :pgroup option for spawn. — Tanaka Akira <akr@...>

process.c で気がついたのですが、spawn に Windows 用の :new_pgroup というオプションが

12 messages 2012/06/23
[#45800] Re: :new_pgroup and :pgroup option for spawn. — "U.Nakamura" <usa@...> 2012/06/25

こんにちは、なかむら(う)です。

[#45818] [ruby-trunk - Feature #6643][Open] io.seek(off, :end) — "akr (Akira Tanaka)" <akr@...>

30 messages 2012/06/25

[ruby-dev:45844] Re: 非同期割り込みに対する対処案(日本語版)

From: SASADA Koichi <ko1@...>
Date: 2012-06-25 20:15:49 UTC
List: ruby-dev #45844
(2012/06/26 5:07), Tanaka Akira wrote:
> 
> 名前ですが、Thread.interruptable_at(:blocking) とかはどうかなぁ。

 これだと,例外クラスを指定する場合,

    Thread.interruptable_at(:blocking, TimeoutError)

みたいに書くの?


>>  begin
>> >    # 何か処理
>> >  ensure
>> >    Thread.mask_interrupt(Exception, :uninterruptible) do
>> >      # 一度全部割り込み禁止にして
>> >      Thread.mask_interrupt(SignalException, :blocking_interruptible) do
>> >        # シグナルだけ割り込みを許して
>> >        # リソース解放処理
>> >      end
>> >    end
>> >  end
> 外側が :immediate_interruptible であるとすると、これは race がありますよね。
> 
> 「何か処理」で例外が起きて、ensure 節に入った後、
> Thread.mask_interrupt(Exception, :uninterruptible) を呼び出す前に
> 非同期イベントによる例外が起きると、リソース開放処理がスキップされます。
> 
> 実装上はそこでは例外は起きないのかもしれませんが...

 確かに,仰るとおりです.寝ぼけた頭では,とりあえず

(1) 「実装上はそこでは例外は起きない」ことを仕様にする
(2) ensure に細工する(あまりやりたくない)
(3) 利用者が immediate にしない

が考えられると思います.どれがいいでしょう.または,他の選択肢はあるで
しょうか.

-- 
// SASADA Koichi at atdot dot net

In This Thread