Кажется, что shared_mutex Повышения не является рекурсивным.. Есть ли так или иначе вокруг этого? (без ре, реализовывая целый материал)
В этих случаях вам придется использовать shared_ptr. Поместите ваш мьютекс в shared_ptr, и он будет выполнять ref-counting на вашем мьютексе, что даст вам схожие результаты.