'Args:
data_queue(multiprocessing.Queue): a queue which contains datapoints.
nr_producer(int): number of producer processes. This process will
terminate after receiving this many of :class:`DIE` sentinel.
start(int): the rank of the first object'

def __init__(self, data_queue, nr_producer, start=0):

    super(OrderedResultGatherProc, self).__init__()
    self.data_queue = data_queue
    self.ordered_container = OrderedContainer(start=start)
    self.result_queue = multiprocessing.Queue()
    self.nr_producer = nr_producer
