Use asymmetric filters for some evt predicates
This commit is contained in:
parent
15e60c2da1
commit
e67f7c9de4
|
@ -316,7 +316,7 @@
|
|||
[never-evt (make-Evt (Un))]
|
||||
[system-idle-evt (-> (make-Evt -Void))]
|
||||
[alarm-evt (-> -Real (-mu x (make-Evt x)))]
|
||||
[handle-evt? (make-pred-ty (make-Evt Univ))]
|
||||
[handle-evt? (asym-pred Univ B (-FS (-filter (make-Evt Univ) 0) -top))]
|
||||
[current-evt-pseudo-random-generator
|
||||
(-Param -Pseudo-Random-Generator -Pseudo-Random-Generator)]
|
||||
|
||||
|
@ -327,7 +327,7 @@
|
|||
[channel-try-get (-poly (a) ((-channel a) . -> . (Un a (-val #f))))]
|
||||
[channel-put (-poly (a) ((-channel a) a . -> . -Void))]
|
||||
[channel-put-evt (-poly (a) (-> (-channel a) a (-mu x (make-Evt x))))]
|
||||
[channel-put-evt? (make-pred-ty (-mu x (make-Evt x)))]
|
||||
[channel-put-evt? (asym-pred Univ B (-FS (-filter (-mu x (make-Evt x)) 0) -top))]
|
||||
|
||||
;Section 3.3
|
||||
|
||||
|
@ -2196,7 +2196,7 @@
|
|||
[semaphore-try-wait? (-> -Semaphore B)]
|
||||
[semaphore-wait/enable-break (-> -Semaphore -Void)]
|
||||
[semaphore-peek-evt (-> -Semaphore (-mu x (make-Evt x)))]
|
||||
[semaphore-peek-evt? (make-pred-ty (-mu x (make-Evt x)))]
|
||||
[semaphore-peek-evt? (asym-pred Univ B (-FS (-filter (-mu x (make-Evt x)) 0) -top))]
|
||||
;[call-with-semaphore ???]
|
||||
;[call-with-semaphore/enable-break ???]
|
||||
|
||||
|
|
|
@ -1464,6 +1464,12 @@
|
|||
(make-Evt -String))
|
||||
(tc-e (guard-evt (inst make-channel String))
|
||||
(make-Evt -String))
|
||||
(tc-err (let: ([a : (U (Evtof Any) String) always-evt])
|
||||
(if (handle-evt? a) a (string->symbol a))))
|
||||
(tc-err (let: ([a : (U (Evtof Any) String) always-evt])
|
||||
(if (channel-put-evt? a) a (string->symbol a))))
|
||||
(tc-err (let: ([a : (U (Evtof Any) String) always-evt])
|
||||
(if (semaphore-peek-evt? a) a (string->symbol a))))
|
||||
|
||||
;Semaphores
|
||||
(tc-e (make-semaphore) -Semaphore)
|
||||
|
|
Loading…
Reference in New Issue
Block a user