X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;ds=sidebyside;f=actors.scm;h=633445aebd6df810b59dba4c3eed9769c03c657b;hb=0dadc9967c78efaafcfbbc48897163e6bfc93c8b;hp=fa6f1bbc5a840210339a9d5d0f069c7ccbcde011;hpb=fbacbb91961bea3410f457012075aabd91c168c1;p=actors.git diff --git a/actors.scm b/actors.scm index fa6f1bb..633445a 100644 --- a/actors.scm +++ b/actors.scm @@ -31,11 +31,13 @@ (if (null? behaviour) (print "Warning: discarded message " message " to unknown actor " address) (let ((value (apply behaviour (cons address message)))) - (match value - ('done (hash-table-delete! actor-table address)) - ('sleep 'do-nothing) + (case value + ((sleep) 'do-nothing) + ((done) (hash-table-delete! actor-table address)) (else - hash-table-set! actor-table address value)))))) + (if trace-enabled + (print "Updating behaviour of " address)) + (hash-table-set! actor-table address value))))))) ;;; ;;; FIFO queue implementation @@ -119,4 +121,3 @@ (define (send-and-run actor . message) (apply send-message (cons actor message)) (run)) -