X-Git-Url: https://jxself.org/git/?p=8sync.git;a=blobdiff_plain;f=8sync%2Fsystems%2Factors.scm;h=690d63d8082c18a4d1bc2e0fc683b0c93383a6f5;hp=0659eb52c95f45b5323dcf9e44e887a3a02ebc0a;hb=387a9f1a6ceb55c5362daae00171a67abc4135dc;hpb=efe3df614b1808a686a91d07dfc46690b94ad126 diff --git a/8sync/systems/actors.scm b/8sync/systems/actors.scm index 0659eb5..690d63d 100644 --- a/8sync/systems/actors.scm +++ b/8sync/systems/actors.scm @@ -197,7 +197,7 @@ If key not found and DFLT not provided, throw an error." (message (make-message (hive-gen-message-id hive) to-id (actor-id from-actor) action (kwarg-list-to-alist message-body-args)))) - (8sync-nowait (hive-process-message hive message)))) + (8sync (hive-process-message hive message)))) (define (send-message-wait from-actor to-id action . message-body-args) "Send a message from an actor to another, but wait until we get a response" @@ -224,7 +224,7 @@ If key not found and DFLT not provided, throw an error." (actor-id from-actor) '*reply* (kwarg-list-to-alist message-body-args) #:in-reply-to (message-id original-message)))) - (8sync-nowait (hive-process-message hive new-message)))) + (8sync (hive-process-message hive new-message)))) (define (reply-message-wait from-actor original-message . message-body-args) @@ -513,7 +513,7 @@ more compact following syntax: (actor-id hive) '*error* new-message-body #:in-reply-to (message-id original-message)))) - (8sync-nowait (hive-process-message hive new-message)))) + (8sync (hive-process-message hive new-message)))) (define-method (hive-process-message (hive ) message) "Handle one message, or forward it via an ambassador" @@ -538,7 +538,8 @@ more compact following syntax: (define (call-catching-coroutine thunk) (define (call-catching-errors) - ;; TODO: maybe parameterize and use maybe-catch-all from agenda.scm + ;; TODO: maybe parameterize (or attach to hive) and use + ;; maybe-catch-all from agenda.scm ;; @@: Why not just use with-throw-handler and let the catch ;; happen at the agenda? That's what we used to do, but ;; it ended up with a SIGABRT. See: @@ -641,7 +642,7 @@ more compact following syntax: (process-remote-message)))) (define-method (hive-actor-local? (hive ) address) - (hash-ref (hive-actor-registry hive) address)) + (equal? (hive-id hive) (address-hive-id address))) (define-method (hive-register-actor! (hive ) (actor )) (hash-set! (hive-actor-registry hive) (actor-id actor) actor)) @@ -683,16 +684,16 @@ that method for documentation." This is the method actors should call directly (unless they want to supply an id-cookie, in which case they should use create-actor*)." - (8sync (%hive-create-actor (actor-hive from-actor) actor-class - init #f))) + (%hive-create-actor (actor-hive from-actor) actor-class + init #f)) (define* (create-actor* from-actor actor-class id-cookie #:rest init) "Create an instance of actor-class. Return the new actor's id. Like create-actor, but permits supplying an id-cookie." - (8sync (%hive-create-actor (actor-hive from-actor) actor-class - init id-cookie))) + (%hive-create-actor (actor-hive from-actor) actor-class + init id-cookie)) (define (self-destruct actor)