(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