<commit_before>import abc
import logging

import six

from tendrl.commons import jobs

LOG = logging.getLogger(__name__)


@six.add_metaclass(abc.ABCMeta)
class Manager(object):
    def __init__(
            self,
            sds_sync_thread,
            central_store_thread,
    ):
        self._central_store_thread = central_store_thread
        self._sds_sync_thread = sds_sync_thread
        self._job_consumer_thread = jobs.JobConsumerThread()


    def stop(self):
        LOG.info("%s stopping" % self.__class__.__name__)
        self.job_consumer_thread.stop()
        self.sds_sync_thread.stop()
        self._central_store_thread.stop()

    def start(self):
        LOG.info("%s starting" % self.__class__.__name__)
        self._central_store_thread.start()
        self._sds_sync_thread.start()
        self._job_consumer_thread.start()

<commit_msg>- Fix greenlet and essential objects startup order tendrl-bug-id: Tendrl/specifications#37<commit_after>import abc
import logging

import six

from tendrl.commons import jobs

LOG = logging.getLogger(__name__)


@six.add_metaclass(abc.ABCMeta)
class Manager(object):
    def __init__(
            self,
            sds_sync_thread,
            central_store_thread,
    ):
        self._central_store_thread = central_store_thread
        self._sds_sync_thread = sds_sync_thread
        self._job_consumer_thread = jobs.JobConsumerThread()


    def stop(self):
        LOG.info("%s stopping" % self.__class__.__name__)
        self._job_consumer_thread.stop()
        self._sds_sync_thread.stop()
        self._central_store_thread.stop()

    def start(self):
        LOG.info("%s starting" % self.__class__.__name__)
        self._central_store_thread.start()
        self._sds_sync_thread.start()
        self._job_consumer_thread.start()


{'fraction_non_alphanumeric': 0.09065782200110559, 'fraction_numerical': 0.001105583195135434, 'mean_word_length': 2.9177489177489178, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4022017', 'n_tokens_mistral': 569, 'n_tokens_neox': 547, 'n_words': 93}