[slime-cvs] CVS update: slime/swank-openmcl.lisp

Luke Gorrie lgorrie at common-lisp.net
Mon Dec 15 15:58:45 UTC 2003


Update of /project/slime/cvsroot/slime
In directory common-lisp.net:/tmp/cvs-serv30323

Modified Files:
	swank-openmcl.lisp 
Log Message:
(ccl::force-break-in-listener): Support for interrupting the Lisp subjob
(by Alan Ruttenberg).

Date: Mon Dec 15 10:58:45 2003
Author: lgorrie

Index: slime/swank-openmcl.lisp
diff -u slime/swank-openmcl.lisp:1.35 slime/swank-openmcl.lisp:1.36
--- slime/swank-openmcl.lisp:1.35	Sun Dec 14 03:24:21 2003
+++ slime/swank-openmcl.lisp	Mon Dec 15 10:58:45 2003
@@ -13,7 +13,7 @@
 ;;; The LLGPL is also available online at
 ;;; http://opensource.franz.com/preamble.html
 ;;;
-;;;   $Id: swank-openmcl.lisp,v 1.35 2003/12/14 08:24:21 heller Exp $
+;;;   $Id: swank-openmcl.lisp,v 1.36 2003/12/15 15:58:45 lgorrie Exp $
 ;;;
 
 ;;;
@@ -89,30 +89,34 @@
                          "Swank" #'accept-loop server-socket close)))
              ;; tell openmcl which process you want to be interrupted when
              ;; sigint is received
-             ;; (setq ccl::*interactive-abort-process* swank))
+             (setq ccl::*interactive-abort-process* swank))
              swank))
           (t
            (accept-loop server-socket close)))))
 
-#+(or)
-(defun ccl::force-break-in-listener (p)
-  (ccl::process-interrupt 
-   p (lambda ()
-       (ccl::ignoring-without-interrupts
-        (let ((*swank-debugger-stack-frame* nil)
-              (previous-p nil))
-          (block find-frame
-            (map-backtrace
-             (lambda (frame-number p tcr lfun pc)
-               (declare (ignore frame-number tcr
-                                pc))
-               (when (eq (ccl::lfun-name lfun) 'swank::eval-region)
-                 (setq
-                  *swank-debugger-stack-frame* previous-p)
-                 (return-from find-frame))
-               (setq previous-p p))))
-          (invoke-debugger)
-          (clear-input *terminal-io*))))))
+(let ((ccl::*warn-if-redefine-kernel* nil))
+   (defun ccl::force-break-in-listener (p)
+     (ccl::process-interrupt p
+                             #'(lambda ()
+                                 (ccl::ignoring-without-interrupts
+                                  (let ((*swank-debugger-stack-frame*
+                                  nil)
+                                        (previous-p nil))
+                                    (block find-frame
+                                      (map-backtrace
+                                       #'(lambda(frame-number p tcr
+                                        lfun pc)
+                                           (declare (ignore
+                                           frame-number tcr pc))
+                                           (when (eq (ccl::lfun-name
+                                           lfun) 'swank::eval-region)
+                                             (setq
+                                             *swank-debugger-stack-frame*
+                                             previous-p)
+                                             (return-from find-frame))
+                                           (setq previous-p p))))
+                                    (invoke-debugger)
+                                    (clear-input *terminal-io*)))))))
 
 (defun accept-loop (server-socket close)
   (unwind-protect (cond (close (accept-one-client server-socket))





More information about the slime-cvs mailing list