.
original commit: 65414279cfb1157b248fe75cfbc6ae06228df856
This commit is contained in:
parent
3acacdbbab
commit
b7e6df9c83
|
@ -41,7 +41,7 @@
|
|||
(channel-put-evt empty-ch (make-semaphore))] ; see poll->ch
|
||||
[tell-full
|
||||
(channel-put-evt full-ch (make-semaphore))] ; see poll->ch
|
||||
[enqueue (wrap-evt
|
||||
[enqueue (convert-evt
|
||||
enqueue-ch
|
||||
(lambda (v)
|
||||
;; We received a put; enqueue it:
|
||||
|
@ -51,7 +51,7 @@
|
|||
(set! queue-last p))))]
|
||||
[mk-dequeue
|
||||
(lambda ()
|
||||
(wrap-evt
|
||||
(convert-evt
|
||||
(channel-put-evt dequeue-ch (car queue-first))
|
||||
(lambda (ignored)
|
||||
;; A get succeeded; dequeue it:
|
||||
|
@ -106,7 +106,7 @@
|
|||
;; Put ----------------------------------------
|
||||
|
||||
(define (async-channel-put-evt ac v)
|
||||
(letrec ([p (wrap-evt
|
||||
(letrec ([p (convert-evt
|
||||
(guard-evt
|
||||
(lambda ()
|
||||
;; Make sure queue manager is running:
|
||||
|
@ -133,11 +133,11 @@
|
|||
;; If a value becomes available,
|
||||
;; create a waitable that returns
|
||||
;; the value:
|
||||
(wrap-evt
|
||||
(convert-evt
|
||||
normal
|
||||
(lambda (v)
|
||||
;; Return a waitable for a successful poll:
|
||||
(wrap-evt
|
||||
(convert-evt
|
||||
always-evt
|
||||
(lambda (ignored) v))))
|
||||
;; If not-ready becomes available,
|
||||
|
|
|
@ -12,24 +12,29 @@
|
|||
ch)
|
||||
|
||||
(define (channel-send-evt ch v)
|
||||
(make-wrapped-waitable
|
||||
(make-channel-put-waitable ch v)
|
||||
(convert-evt
|
||||
(channel-put-evt ch v)
|
||||
void))
|
||||
|
||||
(define (thread-done-evt th)
|
||||
(thread-dead-waitable th))
|
||||
(thread-dead-evt th))
|
||||
|
||||
(define (current-time)
|
||||
(current-inexact-milliseconds))
|
||||
(define (time-evt t)
|
||||
(alarm-evt t))
|
||||
|
||||
(define (wrap-evt e p)
|
||||
(convert-evt e p))
|
||||
|
||||
(provide/contract
|
||||
(spawn ((-> any) . -> . thread?))
|
||||
(channel (-> channel?))
|
||||
(channel-recv-evt (channel? . -> . evt?))
|
||||
(channel-send-evt (channel? any? . -> . evt?))
|
||||
|
||||
(wrap-evt (evt? (any? . -> . any) . -> . evt?))
|
||||
|
||||
(thread-done-evt (thread? . -> . evt?))
|
||||
(current-time (-> number?))
|
||||
(time-evt (real? . -> . evt?))))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
(module transcr mzscheme
|
||||
(require (lib "thread.ss"))
|
||||
(require (lib "port.ss"))
|
||||
(provide (rename -transcript-on transcript-on)
|
||||
(rename -transcript-off transcript-off))
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user