А что тут понимать? Я решаю проблемы синхронизации в одну строчку.
А ты сколько планируешь написать?
Сколько, интересно, у тебя будет критических
секций в критических процедурах и сколько
обработчиков критических ситуаций? А если их десятки?
Запутаешься, где кого и как нужно разлочить.
А объект - shell можно сделать библиотечным
и никогда уже больше не заниматься этим вопросом.
Кроме того, возможны процедуры не с одной
точкой выхода, а с несколькими. Мне при этом
ничего не нужно делать - за правильным вызовом
деструкторов будет следить компилятор.
А он не ошибается.