':param consumer_plugins: Instances of base_consumer plugins in a list
:param w3af_core: The w3af core that we\'ll use for status reporting
:param thread_name: How to name the current thread
:param create_pool: True to create a worker pool for this consumer'

def __init__(self, consumer_plugins, w3af_core, thread_name, create_pool=True, max_pool_queued_tasks=0, max_in_queue_size=0):

    super(BaseConsumer, self).__init__(name=('%sController' % thread_name))
    self.in_queue = QueueSpeed(maxsize=max_in_queue_size)
    self._out_queue = Queue.Queue()
    self._consumer_plugins = consumer_plugins
    self._w3af_core = w3af_core
    self._observers = []
    self._tasks_in_progress = {}
    self._poison_pill_sent = False
    self._threadpool = None
    if create_pool:
        self._threadpool = Pool(self.THREAD_POOL_SIZE, worker_names=('%sWorker' % thread_name), max_queued_tasks=max_pool_queued_tasks)
