Skip to content

Commit c30201c

Browse files
committed
Fix
1 parent f41a61f commit c30201c

File tree

4 files changed

+20
-23
lines changed

4 files changed

+20
-23
lines changed

lib/chibi/process.scm

+11-2
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,29 @@
1+
(define unwind #f)
2+
3+
((call/cc
4+
(lambda (k)
5+
(set! unwind k)
6+
(lambda () #f))))
17

28
(cond-expand
39
(plan9
4-
(define (exit . o)
10+
(define (emergency-exit . o)
511
(%exit (if (pair? o)
612
(if (string? (car o))
713
(car o)
814
(if (eq? #t (car o)) "" "chibi error"))
915
""))))
1016
(else
11-
(define (exit . o)
17+
(define (emergency-exit . o)
1218
(%exit (if (pair? o)
1319
(if (integer? (car o))
1420
(inexact->exact (car o))
1521
(if (eq? #t (car o)) 0 1))
1622
0)))))
1723

24+
(define (exit . o)
25+
(unwind (lambda () (apply emergency-exit o))))
26+
1827
(cond-expand
1928
(bsd
2029
(define (process-command-line pid)

lib/chibi/process.sld

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11

22
(define-library (chibi process)
3-
(export exit sleep alarm %fork fork kill execute waitpid system system?
4-
process-command-line process-running?
3+
(export exit emergency-exit sleep alarm
4+
%fork fork kill execute waitpid system system?
5+
process-command-line process-running?
56
set-signal-action! make-signal-set
67
signal-set? signal-set-contains?
78
signal-set-fill! signal-set-add! signal-set-delete!

lib/chibi/win32/process-win32.sld

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
(define-library (chibi win32 process-win32)
22
(import (scheme base))
3-
(export exit)
3+
(export exit emergency-exit)
44
(cond-expand
55
(windows
66
(include-shared "process-win32")
77
(include "process-win32.scm"))
88
(else
9-
(import (only (chibi process) exit)))))
9+
(import (only (chibi process) exit emergency-exit)))))

lib/scheme/process-context.sld

+4-17
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,7 @@
11

22
(define-library (scheme process-context)
3-
(import (chibi) (only (scheme base) call/cc) (srfi 98))
4-
(cond-expand (windows (import (prefix (only (chibi win32 process-win32) exit) process-)))
5-
(else (import (prefix (only (chibi process) exit) process-))))
3+
(import (chibi) (srfi 98))
4+
(cond-expand (windows (import (only (chibi win32 process-win32) exit emergency-exit)))
5+
(else (import (only (chibi process) exit emergency-exit))))
66
(export get-environment-variable get-environment-variables
7-
command-line exit emergency-exit)
8-
9-
(begin
10-
(define unwind #f)
11-
12-
((call/cc
13-
(lambda (cont)
14-
(set! unwind cont)
15-
(lambda () #f))))
16-
17-
(define emergency-exit process-exit)
18-
19-
(define (exit . rest)
20-
(unwind (lambda () (apply emergency-exit rest))))))
7+
command-line exit emergency-exit))

0 commit comments

Comments
 (0)