Added counter (become) example.
[actors.git] / actors.scm
index fa6f1bb..45af822 100644 (file)
     (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
+            ((done) (hash-table-delete! actor-table address))
+            ((sleep) 'do-nothing)
             (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