~ chicken-core (chicken-5) 7aacba829e680a9c20fdac4800d3445f624bf6c5


commit 7aacba829e680a9c20fdac4800d3445f624bf6c5
Author:     Felix <bunny351@gmail.com>
AuthorDate: Mon Oct 19 00:42:55 2009 +0200
Commit:     Felix <bunny351@gmail.com>
CommitDate: Mon Oct 19 00:42:55 2009 +0200

    removed breakpoint support from scheduler

diff --git a/scheduler.scm b/scheduler.scm
index 69f1a603..af2ce503 100644
--- a/scheduler.scm
+++ b/scheduler.scm
@@ -479,55 +479,3 @@ EOF
 	       (loop (##sys#slot fdl 1)) ) ) ) ) )
     (##sys#setislot t 12 '())
     (##sys#thread-basic-unblock! t) ) )
-
-
-;;; Multithreaded breakpoints
-
-(define (##sys#break-entry name args)
-  (when (or (not ##sys#break-in-thread) (eq? ##sys#break-in-thread ##sys#current-thread))
-    (##sys#call-with-current-continuation
-     (lambda (k)
-       (let* ((pk (if (eq? ##sys#current-thread ##sys#primordial-thread)
-		      '()
-		      (list '(exn . thread) ##sys#current-thread
-			    '(exn . primordial-continuation) 
-			    (lambda _ ((##sys#slot ##sys#primordial-thread 1))))))
-	      (exn (##sys#make-structure
-		    'condition
-		    '(exn breakpoint)
-		    (append 
-		     (list '(exn . message) "*** breakpoint ***"
-			   '(exn . arguments) (cons name args)
-			   '(exn . location) name
-			   '(exn . continuation) k)
-		     pk) ) ) )
-	 (set! ##sys#last-breakpoint exn)
-	 (cond ((eq? ##sys#current-thread ##sys#primordial-thread)
-		(##sys#signal exn) )
-	       (else
-		(##sys#setslot ##sys#current-thread 3 'suspended)
-		(##sys#setslot ##sys#current-thread 1 (lambda () (k (##core#undefined))))
-		(let ([old (##sys#slot ##sys#primordial-thread 1)])
-		  (##sys#setslot
-		   ##sys#primordial-thread 1
-		   (lambda ()
-		     (##sys#signal exn)
-		     (old) ) )
-		  (##sys#thread-unblock! ##sys#primordial-thread)
-		  (##sys#schedule) ) ) ) ) ) ) ) )
-		  
-(define (##sys#break-resume exn)
-  ;; assumes current-thread is primordial
-  (let* ((props (##sys#slot exn 2))
-	 (a (member '(exn . continuation) props))
-	 (t (member '(exn . thread) props))
-	 (pk (or (member '(exn . primordial-continuation) props) a)))
-    (when t
-      (let ((t (cadr t)))
-	(if a
-	    (##sys#setslot t 1 (lambda () ((cadr a) (##core#undefined))))
-	    (##sys#signal-hook #:type-error "condition has no continuation" exn) )
-	(##sys#add-to-ready-queue t) ) )
-    (if pk
-	((cadr pk) (##core#undefined))
-	(##sys#signal-hook #:type-error "condition has no continuation" exn) ) ) )
Trap