require 'celluloid/io' module Legion # Used to manage and start Celluloid and Supervisor class Supervision attr_accessor :supervision_group def initialize Legion::Logging.debug('Initializing Legion::Supervision') Legion::Logging.info('Starting Celluloid') Celluloid.logger = Legion::Logging start_supervision end def start_supervision Legion::Logging.debug('Starting Celluloid::Supervision::Container.run!') @supervision_group = Celluloid::Supervision::Container.run! Legion::Logging.info('Celluloid Supervisor has started') end def stop_supervision Legion::Logging.info('Shutting down the Supervision group') @supervision_group.shutdown sleep(1) Celluloid.shutdown Legion::Logging.info('Legion Celluloid Supervision Group has been shutdown') end end end