1.0.14.1: lisp-side interrupt handling improvements
[sbcl.git] / src / code / target-thread.lisp
index 38549a3..218e355 100644 (file)
@@ -688,8 +688,9 @@ around and can be retrieved by JOIN-THREAD."
                   ;; internal printer variables
                   (sb!impl::*previous-case* nil)
                   (sb!impl::*previous-readtable-case* nil)
-                  (sb!impl::*merge-sort-temp-vector* (vector)) ; keep these small!
-                  (sb!impl::*zap-array-data-temp* (vector))    ;
+                  (empty (vector))
+                  (sb!impl::*merge-sort-temp-vector* empty)
+                  (sb!impl::*zap-array-data-temp* empty)
                   (sb!impl::*internal-symbol-output-fun* nil)
                   (sb!impl::*descriptor-handlers* nil)) ; serve-event
               (setf (thread-os-thread thread) (current-thread-sap-id))
@@ -844,6 +845,12 @@ SB-EXT:QUIT - the usual cleanup forms will be evaluated"
              (sap-ref-sap thread-sap (* sb!vm:n-word-bytes
                                         sb!vm::thread-next-slot)))))))
 
+(define-alien-routine "thread_yield" int)
+
+#!+sb-doc
+(setf (fdocumentation 'thread-yield 'function)
+      "Yield the processor to other threads.")
+
 #!+sb-thread
 (defun symbol-value-in-thread (symbol thread-sap)
   (let* ((index (sb!vm::symbol-tls-index symbol))