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