std::recursive_mutex
`std::recursive_mutex` is a synchronization primitive in C++ that allows multiple threads to lock the same mutex without causing a deadlock. This is particularly useful when a thread needs to acquire the same lock multiple times, such as when calling a function that locks the mutex within another function that also locks it.
Unlike a regular mutex, which can only be locked once by a thread, a `std::recursive_mutex` keeps track of how many times it has been locked by the same thread. When the thread unlocks it, the mutex is only released after the same number of unlock calls as lock calls have been made.