def worker(self):
        """
        Multiprocessing task function run by worker processes
        """
        tasks_completed = 0
        for task in iter(self.task_queue.get, 'STOP'):
            col_index, item, item2 = task
            if not hasattr(item, '__iter__') or isinstance(item, tuple):
                item = [item]
            if not hasattr(item2, '__iter__') or isinstance(item2, tuple):
                item2 = [item2]
            result = (col_index, self.combinfunc(item, item2))
            self.done_queue.put(result)
            tasks_completed += 1
        logger.info("Worker %s performed %s tasks",
                    current_process().name,
                    tasks_completed)
Multiprocessing task function run by worker processes