actors: Remove wrap-apply from actor-inheritable-message-handler call.
authorChristopher Allan Webber <cwebber@dustycloud.org>
Fri, 16 Dec 2016 17:00:09 +0000 (11:00 -0600)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Fri, 16 Dec 2016 17:00:09 +0000 (11:00 -0600)
* 8sync/systems/actors.scm (actor-inheritable-message-handler): Move location.
  (<actor>): Switch init-value of actor-inheritable-message-handler to
  drop wrap-apply.

8sync/systems/actors.scm

index debb606eb09fe743d7454a96b6abf7d1a7a531e2..52b18779a11d6d1bd12ba2559dfe804f892de933 100644 (file)
 ;;; Main actor implementation
 ;;; =========================
 
-(define-class <actor> ()
-  ;; An address object
-  (id #:init-keyword #:id
-      #:getter actor-id)
-  ;; The hive we're connected to.
-  ;; We need this to be able to send messages.
-  (hive #:init-keyword #:hive
-        #:accessor actor-hive)
-  ;; How we receive and process new messages
-  (message-handler #:init-value (wrap-apply actor-inheritable-message-handler)
-                   ;; @@: There's no reason not to use #:class instead of
-                   ;;   #:each-subclass anywhere in this file, except for
-                   ;;   Guile bug #25211 (#:class is broken in Guile 2.2)
-                   #:allocation #:each-subclass)
-
-  ;; This is the default, "simple" way to inherit and process messages.
-  (actions #:init-value '()
-           #:allocation #:each-subclass))
-
 (define (actor-inheritable-message-handler actor message)
   (define action (message-action message))
   (define (find-message-handler return)
     (call/ec find-message-handler))
   (apply method actor message (message-body message)))
 
+(define-class <actor> ()
+  ;; An address object
+  (id #:init-keyword #:id
+      #:getter actor-id)
+  ;; The hive we're connected to.
+  ;; We need this to be able to send messages.
+  (hive #:init-keyword #:hive
+        #:accessor actor-hive)
+  ;; How we receive and process new messages
+  (message-handler #:init-value actor-inheritable-message-handler
+                   ;; @@: There's no reason not to use #:class instead of
+                   ;;   #:each-subclass anywhere in this file, except for
+                   ;;   Guile bug #25211 (#:class is broken in Guile 2.2)
+                   #:allocation #:each-subclass)
+
+  ;; This is the default, "simple" way to inherit and process messages.
+  (actions #:init-value '()
+           #:allocation #:each-subclass))
+
 (define-method (actor-message-handler (actor <actor>))
   (slot-ref actor 'message-handler))