From 20a62e530547ec6434fed9401a32c17de6efd656 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 10 May 2004 22:54:09 +0000 Subject: [PATCH] . original commit: 129e2b2fddb36c4a408af6327233ca9fd3fa0d36 --- collects/mzlib/port.ss | 24 +++++++++++------------- collects/mzlib/thread.ss | 6 +++--- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/collects/mzlib/port.ss b/collects/mzlib/port.ss index 6a723c3..e2304f4 100644 --- a/collects/mzlib/port.ss +++ b/collects/mzlib/port.ss @@ -15,7 +15,7 @@ (make-output-port name always-evt - (lambda (s start end non-block?) (- end start)) + (lambda (s start end non-block? breakable?) (- end start)) void (lambda (special non-block?) #t) (lambda (s start end) (wrap-evt @@ -84,12 +84,11 @@ (semaphore-peek-evt lock-semaphore) (lambda (x) 0))) (define (read-it s) - (parameterize ([break-enabled #f]) - (call-with-semaphore - lock-semaphore - (lambda () - (do-read-it s)) - try-again))) + (call-with-semaphore + lock-semaphore + (lambda () + (do-read-it s)) + try-again)) (define (do-read-it s) (if (char-ready? peeked-r) (read-bytes-avail!* s peeked-r) @@ -111,12 +110,11 @@ (when (null? special-peeked) (set! special-peeked-tail #f))))]))) (define (peek-it s skip) - (parameterize ([break-enabled #f]) - (call-with-semaphore - lock-semaphore - (lambda () - (do-peek-it s skip)) - try-again))) + (call-with-semaphore + lock-semaphore + (lambda () + (do-peek-it s skip)) + try-again)) (define (do-peek-it s skip) (let ([v (peek-bytes-avail!* s skip peeked-r)]) (if (zero? v) diff --git a/collects/mzlib/thread.ss b/collects/mzlib/thread.ss index b722e4d..d839ead 100644 --- a/collects/mzlib/thread.ss +++ b/collects/mzlib/thread.ss @@ -73,13 +73,13 @@ (define dynamic-enable-break (polymorphic (lambda (thunk) - (parameterize ([break-enabled #t]) + (parameterize-break #t (thunk))))) (define dynamic-disable-break (polymorphic (lambda (thunk) - (parameterize ([break-enabled #f]) + (parameterize-break #f (thunk))))) (define make-single-threader @@ -113,7 +113,7 @@ (let ([c (make-custodian)]) (parameterize ([current-custodian c]) ;; disable breaks during session set-up... - (parameterize ([break-enabled #f]) + (parameterize-break #f ;; ... but enable breaks while blocked on an accept: (let-values ([(r w) ((if can-break? tcp-accept/enable-break