Added tests for parameterizations and thread cells.
This commit is contained in:
parent
f5a7e73be8
commit
c2a473cba2
|
@ -1,5 +1,16 @@
|
||||||
#lang typed-scheme
|
#lang typed/racket
|
||||||
|
|
||||||
(parameterize ([current-directory ".."])
|
(parameterize ([current-directory ".."])
|
||||||
(current-directory)
|
(current-directory)
|
||||||
(current-directory ".."))
|
(current-directory ".."))
|
||||||
|
|
||||||
|
|
||||||
|
(: old-param Parameterization)
|
||||||
|
(define old-param (current-parameterization))
|
||||||
|
|
||||||
|
(current-directory "..")
|
||||||
|
|
||||||
|
(call-with-parameterization old-param (lambda () (current-directory)))
|
||||||
|
|
||||||
|
(parameterization? old-param)
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#lang typed/scheme
|
#lang typed/racket
|
||||||
|
|
||||||
(: chan (Channelof Symbol))
|
(: chan (Channelof Symbol))
|
||||||
(define chan (make-channel))
|
(define chan (make-channel))
|
||||||
|
@ -48,3 +48,26 @@
|
||||||
(channel-put c2 (cons c3 'b))
|
(channel-put c2 (cons c3 'b))
|
||||||
(let: ((c4 : JumpingChannel (make-channel)))
|
(let: ((c4 : JumpingChannel (make-channel)))
|
||||||
(channel-put c3 (cons c4 'c)))))
|
(channel-put c3 (cons c4 'c)))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(: tc (ThreadCellof Integer))
|
||||||
|
(define tc (make-thread-cell 0))
|
||||||
|
|
||||||
|
(thread-cell-set! tc 1)
|
||||||
|
|
||||||
|
(thread-wait (thread (lambda ()
|
||||||
|
(displayln (thread-cell-ref tc))
|
||||||
|
(thread-cell-set! tc 2)
|
||||||
|
(displayln (thread-cell-ref tc)))))
|
||||||
|
|
||||||
|
(thread-cell-ref tc)
|
||||||
|
|
||||||
|
(define blocked-thread
|
||||||
|
(thread (lambda ()
|
||||||
|
(channel-get ((inst make-channel 'unused))))))
|
||||||
|
|
||||||
|
|
||||||
|
(thread-suspend blocked-thread)
|
||||||
|
(kill-thread blocked-thread)
|
||||||
|
|
|
@ -214,7 +214,7 @@
|
||||||
|
|
||||||
(define -Custodian (make-Base 'Custodian #'custodian? custodian? #'Custodian))
|
(define -Custodian (make-Base 'Custodian #'custodian? custodian? #'Custodian))
|
||||||
|
|
||||||
(define -Parameterization (make-Base 'Parameterization #'parameterization? parameterization? #'Parameterization))
|
(define -Parameterization (make-Base 'Parameterization #'parameterization? parameterization? #'-Parameterization))
|
||||||
|
|
||||||
|
|
||||||
(define -Inspector (make-Base 'Inspector #'inspector inspector? #'-Inspector))
|
(define -Inspector (make-Base 'Inspector #'inspector inspector? #'-Inspector))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user