Simplify blocking-box's manager
This commit is contained in:
parent
9cf5deadeb
commit
faeb19a27e
|
@ -19,8 +19,8 @@
|
||||||
(define (manager s g)
|
(define (manager s g)
|
||||||
(define v (channel-get s))
|
(define v (channel-get s))
|
||||||
(let loop ()
|
(let loop ()
|
||||||
(sync (handle-evt s (lambda (ignored-new-v) (loop)))
|
(sync s (channel-put-evt g v)) ;; ignore any future settings, answer all future gettings
|
||||||
(handle-evt (channel-put-evt g v) (lambda (dummy) (loop))))))
|
(loop)))
|
||||||
|
|
||||||
(define (blocking-box-evt b)
|
(define (blocking-box-evt b)
|
||||||
(guard-evt
|
(guard-evt
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
#lang racket/base
|
||||||
|
|
||||||
|
(require "blocking-box.rkt")
|
||||||
|
(require rackunit)
|
||||||
|
|
||||||
|
(define b (make-blocking-box))
|
||||||
|
(set-blocking-box! b 1)
|
||||||
|
(set-blocking-box! b 2)
|
||||||
|
(set-blocking-box! b 3)
|
||||||
|
(check-equal? (blocking-box-value b) 1)
|
Loading…
Reference in New Issue