def _run(self):
        """Run method that can be profiled"""
        self.ioloop = ioloop.IOLoop.current()
        self.consumer_lock = locks.Lock()
        try:
            self.setup(self._kwargs['config'],
                       self._kwargs['consumer_name'],
                       self._kwargs['connection_name'],
                       self._kwargs['stats_queue'])
        except (AttributeError, ImportError) as error:
            name = self._kwargs['consumer_name']
            class_name = self._kwargs['config']['Consumers'][name]['consumer']
            if PYTHON26:
                LOGGER.exception('Could not start %s, stopping process: %r',
                                 class_name, error)
            else:
                LOGGER.exception('Could not start %s, stopping process: %r',
                                 class_name, error, exc_info=sys.exc_info())
            os.kill(os.getppid(), signal.SIGABRT)
            sys.exit(1)

        # Connect to RabbitMQ after the IOLoop has started
        self.ioloop.add_callback(self.connect_to_rabbitmq,
                                 self.connections,
                                 self.connection_name)

        if not self.is_stopped:
            try:
                self.ioloop.start()
            except __HOLE__:
                LOGGER.warning('CTRL-C while waiting for clean shutdown')
dataset/ETHPy150Open gmr/rejected/rejected/process.py/Process._run