--- fastcgi.scm.orig 2004-04-30 22:11:08.000000000 +0900 +++ fastcgi.scm 2004-04-30 22:13:31.000000000 +0900 @@ -45,6 +45,7 @@ (define (error->string obj) (and (is-a? obj ) (ref obj 'message))) +(define *sigtermed* #f) (define (call-with-fastcgi proc) (cond ((fcgx-is-cgi) (proc (current-input-port) @@ -55,12 +56,14 @@ ;; rush into the infinity.. (let loop () ;; leave these signals to libfcgi - (set-signal-handler! SIGTERM #t) + (set-signal-handler! SIGTERM (lambda (k) (set! *sigtermed* #t))) (set-signal-handler! SIGHUP #t) (set-signal-handler! SIGUSR1 #t) ;; mod_fastcgi requires this! (set-signal-handler! SIGPIPE (lambda (k) (loop))) + (if *sigtermed* (exit 0)) + (receive (in out err env) (fcgx-accept) (let ((iport (fcgx-stream->port in)) (oport (fcgx-stream->port out))