Ключом к пониманию того, что происходит в коде, является понимание каждой части. Убедитесь, что вы понимаете концепции мьютексных блокировок, потоков и условий гонки. Также убедитесь, что вы знаете, что такое объекты FreeListMutex и FreeList и что они делают. Возможно, вам придется пойти в Google и провести какое-то исследование, но если вы понимаете части, вы можете просмотреть каждую часть кода и выяснить, что он делает.