Multithread merge sort implementation of big file (4GB) with summary memory usage limit. C++