X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;f=actors.scm;h=633445aebd6df810b59dba4c3eed9769c03c657b;hb=0dadc9967c78efaafcfbbc48897163e6bfc93c8b;hp=4ae01ed615767c699d29f3a05f2292d0e421d51f;hpb=758646ce472f2610b3100779fcf2b8ad15481a4e;p=actors.git diff --git a/actors.scm b/actors.scm index 4ae01ed..633445a 100644 --- a/actors.scm +++ b/actors.scm @@ -1,6 +1,6 @@ (import srfi-69 matchable) -(define trace-enabled #t) +(define trace-enabled #f) ;;; ;;; Actor creation @@ -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)) -