closing port immediately on return with-{input-from,output-to}-file

This commit is contained in:
Alex Shinn 2012-07-11 21:28:14 +09:00
parent f895ace01b
commit 6adeccf173

View file

@ -583,7 +583,7 @@
(tmp-in (open-input-file file))) (tmp-in (open-input-file file)))
(dynamic-wind (dynamic-wind
(lambda () (current-input-port tmp-in)) (lambda () (current-input-port tmp-in))
thunk (lambda () (let ((res (thunk))) (close-input-port tmp-in) res))
(lambda () (current-input-port old-in))))) (lambda () (current-input-port old-in)))))
(define (with-output-to-file file thunk) (define (with-output-to-file file thunk)
@ -591,7 +591,7 @@
(tmp-out (open-output-file file))) (tmp-out (open-output-file file)))
(dynamic-wind (dynamic-wind
(lambda () (current-output-port tmp-out)) (lambda () (current-output-port tmp-out))
thunk (lambda () (let ((res (thunk))) (close-output-port tmp-out) res))
(lambda () (current-output-port old-out))))) (lambda () (current-output-port old-out)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;