(2012/07/02 20:14), Yusuke Endoh wrote:
> 以下のようにすれば現状の API で問題ないと思うのですが、
> 何か見落としているでしょうか。
> 
>   # (1) と (2) の間の割り込みを防ぐために
>   Thread.mask_interrupt(Exception, :blocking_interruptible) do # (0)
>     begin
>       # begin 〜 ensure 内での割り込みはいつでも許す
>       Thread.mask_interrupt(Exception, :immediate_interruptible) do
>         # 何か処理
>       end
>     ensure # (1)
>       # (0) のおかげでこの間に割り込まれることはない
>       Thread.mask_interrupt(Exception, :uninterruptible) do (2)
>         # 一度全部割り込み禁止にして
>         Thread.mask_interrupt(SignalException, :blocking_interruptible) do
>           # シグナルだけ割り込みを許して
>           # リソース解放処理
>         end
>       end
>     end
>   end
> 

 (0) 書きたくねーよ! てな話なのかなぁ,とも思ったのですが,どうでしょ
う.個人的には,これで良ければこれで行きたい気がします.

-- 
// SASADA Koichi at atdot dot net