0.9.4.83:
[sbcl.git] / src / code / toplevel.lisp
index 2dae8cb..830c1c2 100644 (file)
@@ -25,9 +25,7 @@
 ;;; specials initialized by !COLD-INIT
 
 ;;; FIXME: These could be converted to DEFVARs.
-(declaim (special *gc-inhibit* *need-to-collect-garbage*
-                  *after-gc-hooks*
-                  #!+(or x86 x86-64) *pseudo-atomic-atomic*
+(declaim (special #!+(or x86 x86-64) *pseudo-atomic-atomic*
                   #!+(or x86 x86-64) *pseudo-atomic-interrupted*
                   sb!unix::*interrupts-enabled*
                   sb!unix::*interrupt-pending*
@@ -298,8 +296,10 @@ steppers to maintain contextual information.")
                   *error-output*
                   *query-io*
                   *standard-output*
-                  *trace-output*))
-    (finish-output (symbol-value name)))
+                  *trace-output*
+                  *terminal-io*))
+    ;; FINISH-OUTPUT may block more easily than FORCE-OUTPUT
+    (force-output (symbol-value name)))
   (values))
 
 (defun process-init-file (truename)
@@ -586,6 +586,7 @@ steppers to maintain contextual information.")
           (scrub-control-stack)
           (sb!thread::get-foreground)
           (unless noprint
+            (flush-standard-output-streams)
             (funcall *repl-prompt-fun* *standard-output*)
             ;; (Should *REPL-PROMPT-FUN* be responsible for doing its own
             ;; FORCE-OUTPUT? I can't imagine a valid reason for it not to