Shiro Kawai
shiro****@lava*****
2004年 9月 2日 (木) 05:27:39 JST
From: Osamu NAKAMURA <naka****@hasak*****> Subject: [Gauche-devel-jp] Re: directory 作成時の mode Date: Wed, 01 Sep 2004 21:58:20 +0900 > (let ((oldmask #f)) > (dynamic-wind > (lambda () (set! oldmask (sys-umask mask))) > とすると、 > この問題 > > 実はこのコードは完全ではありません。最初のsys-umaskの呼び出し > > 直後からdynamic-windの開始までの間にシグナルが入って制御が > > 他に移ると、umaskの設定がおかしくなります。 > は回避できませんか? sys-umaskが戻ってから、その値がoldmaskに代入されるまでの間に 割り込まれる可能性があります。 根本的には、どこかでsys-umaskの実行→古い値の保存、までを シグナルをブロックした状態で行う必要があります。 現在のumaskの値を、umaskに手を加えずに得る方法があれば いいんですが。 --shiro