The Lambda Lab
/
projects
/
sam.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Replaced URIs as optional string representation of addresses.
[sam.git]
/
sam.scm
diff --git
a/sam.scm
b/sam.scm
index
17c6f41
..
88ae320
100644
(file)
--- a/
sam.scm
+++ b/
sam.scm
@@
-22,6
+22,7
@@
srfi-18 ; threads
srfi-69 ; hash-table
uuid ; ids for actors
srfi-18 ; threads
srfi-69 ; hash-table
uuid ; ids for actors
+ uri-generic
udp
fifo)
udp
fifo)
@@
-49,10
+50,16
@@
(define (address-port address)
(caddr address))
(define (address->string address)
(define (address-port address)
(caddr address))
(define (address->string address)
- (with-output-to-string
- (lambda () (write address))))
+ (uri->string
+ (make-uri #:scheme "actor"
+ #:host (address-host address)
+ #:port (address-port address)
+ #:path (list '/ (address-id address)))))
(define (string->address str)
(define (string->address str)
- (with-input-from-string str read))
+ (let ((uri (uri-reference str)))
+ (make-address (uri-host uri)
+ (uri-port uri)
+ (cadr (uri-path uri)))))
(define (address-local? address)
(and (equal? (address-host address) sam-host)
(define (address-local? address)
(and (equal? (address-host address) sam-host)
@@
-71,7
+78,8
@@
(let ((id (address-id address)))
(let ((behaviour (hash-table-ref/default actor-table id '())))
(if (null? behaviour)
(let ((id (address-id address)))
(let ((behaviour (hash-table-ref/default actor-table id '())))
(if (null? behaviour)
- (print "Warning: discarded message" message " to unknown actor " address)
+ (print "Warning: discarded message " message
+ " to unknown actor id " id)
(match (apply (hash-table-ref actor-table id) (cons address message))
('done (hash-table-delete! actor-table id))
('sleep 'do-nothing)
(match (apply (hash-table-ref actor-table id) (cons address message))
('done (hash-table-delete! actor-table id))
('sleep 'do-nothing)