modified to use CoundDownLatch in ParallelMergeSorter