original commit: 129e2b2fddb36c4a408af6327233ca9fd3fa0d36
This commit is contained in:
Matthew Flatt 2004-05-10 22:54:09 +00:00
parent c6446eecf2
commit 20a62e5305
2 changed files with 14 additions and 16 deletions

View File

@ -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)

View File

@ -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