Use (== expr) pattern in matches
This commit is contained in:
parent
a4eb28f5c5
commit
e11db78096
|
@ -13,7 +13,7 @@
|
|||
(define s (rpc `(udp new 5555 65536)))
|
||||
(let loop ()
|
||||
(wait (message-handlers
|
||||
[(udp-packet source (and sink (? (lambda (x) (eq? x s)))) body)
|
||||
[(udp-packet source (and sink (== s)) body)
|
||||
(display "UDP!\n")
|
||||
(send (udp-packet sink source body))
|
||||
(loop)])))))
|
10
os-udp.rkt
10
os-udp.rkt
|
@ -36,14 +36,12 @@
|
|||
(spawn (udp-closer sname s))
|
||||
sname]))
|
||||
|
||||
(define ((for-me? sname) x) (eq? sname x))
|
||||
|
||||
(define ((udp-sender sname s))
|
||||
(let loop ()
|
||||
(wait (message-handlers
|
||||
[`(close ,(? (for-me? sname)))
|
||||
[`(close ,(== sname))
|
||||
(void)]
|
||||
[(udp-packet (? (for-me? sname)) (udp-address host port) body)
|
||||
[(udp-packet (== sname) (udp-address host port) body)
|
||||
(meta-send (lambda ()
|
||||
(printf "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<~n~v~n" body)
|
||||
(dump-bytes! body (bytes-length body))
|
||||
|
@ -55,7 +53,7 @@
|
|||
(define buffer (make-bytes buffer-size))
|
||||
(let loop ()
|
||||
(wait (message-handlers
|
||||
[`(close ,(? (for-me? sname)))
|
||||
[`(close ,(== sname))
|
||||
(void)])
|
||||
(meta-message-handlers
|
||||
[((udp-receive!-evt s buffer) => (list packet-length host port))
|
||||
|
@ -68,5 +66,5 @@
|
|||
|
||||
(define ((udp-closer sname s))
|
||||
(wait (message-handlers
|
||||
[`(close ,(? (for-me? sname)))
|
||||
[`(close ,(== sname))
|
||||
(udp-close s)])))
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
(define reply-addr (gensym 'reply-addr)) ;;; !!! TODO: remove side-effect?
|
||||
(send `(request ,reply-addr ,req))
|
||||
(wait (message-handlers
|
||||
[`(reply ,(? (lambda (v) (eq? v reply-addr))) ,v)
|
||||
[`(reply ,(== reply-addr) ,v)
|
||||
v])))
|
||||
|
||||
(define-syntax rpc-service
|
||||
|
|
Loading…
Reference in New Issue