1.0.25.44: INTERRUPT-THREAD and timer improvements
[sbcl.git] / src / code / exhaust.lisp
index 50c5bdb..a96112b 100644 (file)
@@ -1,4 +1,5 @@
-;;;; detecting and handling exhaustion of memory (stack or heap)
+;;;; detecting and handling exhaustion of fundamental system resources
+;;;; (stack or heap)
 
 ;;;; This software is part of the SBCL system. See the README file for
 ;;;; more information.
 ;;;; files for more information.
 
 (in-package "SB!KERNEL")
-
-;;; FIXME: Even though this is only called when (> SAFETY (MAX SPEED SPACE))
-;;; it's still annoyingly wasteful for it to be a full function call.
-;;; It should probably be a VOP calling an assembly routine or something
-;;; like that.
-(defun %detect-stack-exhaustion ()
-  ;; FIXME: Check the stack pointer against *STACK-EXHAUSTION*, and if
-  ;; out of range signal an error (in a context where *S-E* has been
-  ;; rebound to give some space to let error handling code do its
-  ;; thing without new exhaustion problems).
-  (values))
+(define-alien-routine ("protect_control_stack_guard_page"
+                       %protect-control-stack-guard-page)
+    sb!alien:void
+  (protect-p sb!alien:int))
+(defun protect-control-stack-guard-page (n)
+  (%protect-control-stack-guard-page (if n 1 0)))