Remove (8sync agenda) as an import from actors.scm and add wrap-apply.
[8sync.git] / 8sync / actors.scm
index 9e249cdd987db42fe3c721d9b886b516ab08c33f..48070c43f10deaeebea1db5c18c23d470c969a2a 100644 (file)
@@ -29,7 +29,6 @@
   #:use-module (fibers channels)
   #:use-module (fibers conditions)
   #:use-module (fibers operations)
-  #:use-module (8sync agenda)
   #:use-module (8sync inbox)
   #:use-module (8sync rmeta-slot)
   #:export (;; utilities... ought to go in their own module
             ;;; Commenting out the <address> type for now;
             ;;; it may be back when we have better serializers
             ;; <address>
-            make-address address?
+            make-address
             address-actor-id address-hive-id
 
-            actor-init! actor-cleanup!
-
             address->string
             actor-id-actor
             actor-id-hive
             actor-id-string
 
+            actor-init! actor-cleanup!
+
             actor-alive?
 
             build-actions
@@ -75,8 +74,6 @@
             message-id message-body message-in-reply-to
             message-wants-reply
 
-            message-auto-reply?
-
             <- <-wait
 
             spawn-hive run-hive))
            #:message message))
   (apply method actor message (message-body message)))
 
+(define-syntax-rule (wrap-apply body)
+  "Wrap possibly multi-value function in a procedure, applies all arguments"
+  (lambda args
+    (apply body args)))
+
 (define-syntax-rule (build-actions (symbol method) ...)
   "Construct an alist of (symbol . method), where the method is wrapped
 with wrap-apply to facilitate live hacking and allow the method definition