build-actions
- define-simple-actor
+ define-actor
<hive>
make-hive
<- <-* <-wait <-wait* <-reply <-reply* <-reply-wait <-reply-wait*
- call-with-message msg-receive msg-val
+ call-with-message mbody-receive mbody-val
run-hive
bootstrap-message
;;; Actor utilities
;;; ===============
-(define-syntax-rule (define-simple-actor class action ...)
- (define-class class (<actor>)
+(define-syntax-rule (define-actor class inherits
+ (action ...)
+ slots ...)
+ (define-class class inherits
(actions #:init-value (build-actions action ...)
- #:allocation #:each-subclass)))
+ #:allocation #:each-subclass)
+ slots ...))
\f
;;; The Hive
argument. Similar to call-with-values in concept."
(apply proc message (message-body message)))
-;; (msg-receive (<- bar baz)
+;; (mbody-receive (<- bar baz)
;; (baz)
;; basil)
-;; Emacs: (put 'msg-receive 'scheme-indent-function 2)
+;; Emacs: (put 'mbody-receive 'scheme-indent-function 2)
;; @@: Or receive-msg or receieve-message or??
-(define-syntax-rule (msg-receive arglist message body ...)
+(define-syntax-rule (mbody-receive arglist message body ...)
"Call body with arglist (which can accept arguments like lambda*)
applied from the message-body of message."
(call-with-message message
(lambda* arglist
body ...)))
-(define (msg-val message)
+(define (mbody-val message)
"Retrieve the first value from the message-body of message.
Like single value return from a procedure call. Probably the most
common case when waiting on a reply from some action invocation."