[Gauche-devel-jp] Re: directory 作成時の mode

Back to archive index

Osamu NAKAMURA naka****@hasak*****
2004年 9月 1日 (水) 21:58:20 JST


中村です。

ふと、

At Wed, 01 Sep 2004 00:10:24 -1000 (HST),
Shiro Kawai wrote:
> 
> (define-syntax with-umask
>   (syntax-rules ()
>     ((with-umask (mask) body ...)
>      (let ((oldmask (sys-umask mask)))
>        (dynamic-wind
>          (lambda () (sys-umask mask))
>          (lambda () body ...)
>          (lambda () (sys-umask oldmask)))))
>     ))

ここ
>      (let ((oldmask (sys-umask mask)))
>        (dynamic-wind
>          (lambda () (sys-umask mask))
を
      (let ((oldmask #f))
        (dynamic-wind
          (lambda () (set! oldmask (sys-umask mask)))
とすると、
この問題
> 実はこのコードは完全ではありません。最初のsys-umaskの呼び出し
> 直後からdynamic-windの開始までの間にシグナルが入って制御が
> 他に移ると、umaskの設定がおかしくなります。
は回避できませんか?

などと思ったのですが、破壊的代入が美しくない?

-- 



Gauche-devel-jp メーリングリストの案内
Back to archive index