~ 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