В Java:
Lock lock = new ReentrantLock();
try{
lock.lock();
someFunctionLikelyToCauseAnException();
}
catch(e){...}
finally {
lock.unlock();
}
Мой вопрос заключается в этом вышеприведенном примере, мы знаем, что блокировка всегда будет разблокирована, потому что, наконец, всегда выполняется, но какова гарантия с помощью C++?
mutex m;
m.lock();
someFunctionLikelyToCauseAnException();
/// ????
Как это будет работать и почему?