Add FSemaphores to Typed Racket
This commit is contained in:
parent
e85cc55f6f
commit
8402ee1635
|
@ -261,6 +261,7 @@ These are not part of the numeric tower.
|
|||
@defidform[Place]
|
||||
@defidform[Place-Channel]
|
||||
@defidform[Semaphore]
|
||||
@defidform[FSemaphore]
|
||||
@defidform[Will-Executor]
|
||||
@defidform[Pseudo-Random-Generator]
|
||||
)]{
|
||||
|
|
|
@ -1436,6 +1436,14 @@
|
|||
[would-be-future (-poly (A) ((-> A) . -> . (-future A)))]
|
||||
[processor-count (-> -PosInt)]
|
||||
|
||||
;; Section 11.4.2 (Future Semaphores)
|
||||
[make-fsemaphore (-> -Nat -FSemaphore)]
|
||||
[fsemaphore? (make-pred-ty -FSemaphore)]
|
||||
[fsemaphore-post (-> -FSemaphore -Void)]
|
||||
[fsemaphore-wait (-> -FSemaphore -Void)]
|
||||
[fsemaphore-try-wait? (-> -FSemaphore B)]
|
||||
[fsemaphore-count (-> -FSemaphore -Nat)]
|
||||
|
||||
;; Section 11.5 (Places)
|
||||
[place-enabled? (-> -Boolean)]
|
||||
[place? (make-pred-ty -Place)]
|
||||
|
|
|
@ -149,6 +149,7 @@
|
|||
[Thread-Group -Thread-Group]
|
||||
[Impersonator-Property -Impersonator-Property]
|
||||
[Semaphore -Semaphore]
|
||||
[FSemaphore -FSemaphore]
|
||||
[Bytes-Converter -Bytes-Converter]
|
||||
[Pseudo-Random-Generator -Pseudo-Random-Generator]
|
||||
[Logger -Logger]
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
(only-in racket/flonum flvector?)
|
||||
(only-in racket/extflonum extflvector?)
|
||||
(only-in racket/fixnum fxvector?)
|
||||
(only-in racket/future fsemaphore?)
|
||||
(only-in '#%place place? place-channel?))
|
||||
(only-in racket/pretty pretty-print-style-table?)
|
||||
(only-in racket/udp udp?)
|
||||
|
@ -39,6 +40,7 @@
|
|||
(only-in racket/flonum flvector?)
|
||||
(only-in racket/extflonum extflvector?)
|
||||
(only-in racket/fixnum fxvector?)
|
||||
(only-in racket/future fsemaphore?)
|
||||
(only-in '#%place place? place-channel?))
|
||||
|
||||
(provide (except-out (all-defined-out) make-Base)
|
||||
|
@ -222,6 +224,7 @@
|
|||
(define/decl -Impersonator-Property
|
||||
(make-Base 'Impersonator-Property #'impersonator-property? impersonator-property?))
|
||||
(define/decl -Semaphore (make-Base 'Semaphore #'semaphore? semaphore?))
|
||||
(define/decl -FSemaphore (make-Base 'FSemaphore #'fsemaphore? fsemaphore?))
|
||||
(define/decl -Bytes-Converter (make-Base 'Bytes-Converter #'bytes-converter? bytes-converter?))
|
||||
(define/decl -Pseudo-Random-Generator
|
||||
(make-Base 'Pseudo-Random-Generator #'pseudo-random-generator? pseudo-random-generator?))
|
||||
|
|
|
@ -1855,6 +1855,13 @@
|
|||
'not-a-failure-thunk
|
||||
"x")]
|
||||
|
||||
;; Future Semaphores
|
||||
[tc-e (make-fsemaphore 5) -FSemaphore]
|
||||
[tc-e (fsemaphore-count (make-fsemaphore 5)) -Nat]
|
||||
[tc-e (let: ((s : FSemaphore (make-fsemaphore 3)))
|
||||
(fsemaphore-post s))
|
||||
-Void]
|
||||
|
||||
;Random Numbers
|
||||
(tc-e (make-pseudo-random-generator) -Pseudo-Random-Generator)
|
||||
(tc-e (let: ((pg : Pseudo-Random-Generator (make-pseudo-random-generator)))
|
||||
|
|
Loading…
Reference in New Issue
Block a user