mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-18 21:29:19 +02:00
Unwind before exit
This commit is contained in:
parent
fe93067553
commit
70e5aa14a3
1 changed files with 13 additions and 4 deletions
|
@ -1,9 +1,18 @@
|
|||
|
||||
(define-library (scheme process-context)
|
||||
(import (chibi) (srfi 98))
|
||||
(cond-expand (windows (import (only (chibi win32 process-win32) exit)))
|
||||
(else (import (only (chibi process) exit))))
|
||||
(cond-expand (windows (import (rename (only (chibi win32 process-win32) exit) (exit emergency-exit))))
|
||||
(else (import (rename (only (chibi process) exit) (exit emergency-exit)))))
|
||||
(export get-environment-variable get-environment-variables
|
||||
command-line exit emergency-exit)
|
||||
;; TODO: Make exit unwind and finalize properly.
|
||||
(begin (define emergency-exit exit)))
|
||||
|
||||
(begin
|
||||
(define unwind #f)
|
||||
|
||||
((call/cc
|
||||
(lambda (continuation)
|
||||
(set! unwind continuation)
|
||||
(lambda () #f))))
|
||||
|
||||
(define (exit . rest)
|
||||
(unwind (lambda () (apply emergency-exit rest))))))
|
||||
|
|
Loading…
Add table
Reference in a new issue