~ chicken-core (chicken-5) c6acc1650e9f79367ce7fa054486f7fe35dc67b6
commit c6acc1650e9f79367ce7fa054486f7fe35dc67b6 Author: Evan Hanson <evhan@foldling.org> AuthorDate: Fri Jan 22 14:59:10 2016 +1300 Commit: Evan Hanson <evhan@foldling.org> CommitDate: Tue Mar 8 22:52:34 2016 +1300 Rename "_exit" to "emergency-exit" and move to posix-common The implementations in posixunix.scm and posixwin.scm were identical. diff --git a/manual/Unit posix b/manual/Unit posix index b0a04ff7..6d1d6fb8 100644 --- a/manual/Unit posix +++ b/manual/Unit posix @@ -1119,14 +1119,14 @@ The {{FORMAT}} string follows the rules for the C library procedure {{strptime}} === Raw exit -==== _exit +==== emergency-exit -<procedure>(_exit [CODE])</procedure> +<procedure>(emergency-exit [CODE])</procedure> Exits the current process without flushing any buffered output (using -the C function {{_exit}}). Note that the {{exit-handler}} -is not called when this procedure is invoked. The optional return-code -{{CODE}} defaults to {{0}}. +the C function {{_exit}}). Note that the {{exit-handler}} is not called +when this procedure is invoked. The optional exit status code {{CODE}} +defaults to {{0}}. === ERRNO values @@ -1281,7 +1281,7 @@ not be obtained. On Windows, this procedure always returns {{0}}, ; {{current-user-id}} : {{getuid}} ; {{delete-directory}} : {{rmdir}} ; {{duplicate-fileno}} : {{dup/dup2}} -; {{_exit}} : {{_exit}} +; {{emergency-exit}} : {{_exit}} ; {{file-close}} : {{close}} ; {{file-access-time}} : {{stat}} ; {{file-change-time}} : {{stat}} diff --git a/posix-common.scm b/posix-common.scm index c3a9bfe6..a6f8105f 100644 --- a/posix-common.scm +++ b/posix-common.scm @@ -185,6 +185,14 @@ EOF (define ##sys#posix-error posix-error) +;;; Exit + +(define emergency-exit + (let ((_exit (foreign-lambda void "_exit" int))) + (lambda (#!optional (code 0)) + (_exit code)))) + + ;;; File properties (define-foreign-variable _stat_st_ino unsigned-int "C_statbuf.st_ino") diff --git a/posixunix.scm b/posixunix.scm index 058b8c2a..362e40f3 100644 --- a/posixunix.scm +++ b/posixunix.scm @@ -37,7 +37,7 @@ (define-foreign-variable _stat_st_blocks unsigned-int "C_statbuf.st_blocks") (module chicken.posix - (_exit call-with-input-pipe call-with-output-pipe change-directory + (emergency-exit call-with-input-pipe call-with-output-pipe change-directory change-directory* change-file-mode change-file-owner close-input-pipe close-output-pipe create-directory create-fifo create-pipe create-session create-symbolic-link current-directory @@ -1510,11 +1510,6 @@ EOF ;;; Other things: -(define _exit - (let ([ex0 (foreign-lambda void "_exit" int)]) - (lambda code - (ex0 (if (pair? code) (car code) 0)) ) ) ) - (define set-alarm! (foreign-lambda int "C_alarm" int)) (define-foreign-variable _iofbf int "_IOFBF") diff --git a/posixwin.scm b/posixwin.scm index 4e46662e..ef95d03a 100644 --- a/posixwin.scm +++ b/posixwin.scm @@ -662,7 +662,7 @@ EOF (define-foreign-variable _stat_st_blocks scheme-object "C_SCHEME_UNDEFINED") (module chicken.posix - (_exit call-with-input-pipe call-with-output-pipe change-directory + (emergency-exit call-with-input-pipe call-with-output-pipe change-directory change-directory* change-file-mode change-file-owner close-input-pipe close-output-pipe create-directory create-fifo create-pipe create-session create-symbolic-link current-directory @@ -1168,11 +1168,6 @@ EOF ;;; Other things: -(define _exit - (let ([ex0 (foreign-lambda void "_exit" int)]) - (lambda code - (ex0 (if (pair? code) (car code) 0)) ) ) ) - (define (terminal-port? port) (##sys#check-open-port port 'terminal-port?) (let ([fp (##sys#peek-unsigned-integer port 0)]) diff --git a/types.db b/types.db index b1a6e60d..732cf11f 100644 --- a/types.db +++ b/types.db @@ -1843,7 +1843,7 @@ ;; posix -(chicken.posix#_exit (procedure chicken.posix#_exit (#!optional fixnum) noreturn)) +(chicken.posix#emergency-exit (procedure chicken.posix#emergency-exit (#!optional fixnum) noreturn)) (chicken.posix#call-with-input-pipe (#(procedure #:enforce) chicken.posix#call-with-input-pipe (string (procedure (input-port) . *) #!optional symbol) . *)) (chicken.posix#call-with-output-pipe (#(procedure #:enforce) chicken.posix#call-with-output-pipe (string (procedure (input-port) . *) #!optional symbol) . *)) (chicken.posix#change-directory (#(procedure #:clean #:enforce) chicken.posix#change-directory (string) string))Trap