Цитата Сообщение от Vitamin Посмотреть сообщение
Навскидку, смотрим в википедию на предмет определения реентерабельности:
...

Какому из этих критериев противоречит реализация реентерабельности на основе примитивов синхронизации?
Вот:
"При этом второй пользователь может вызвать реентерабельный код до того, как с ним завершит работу первый пользователь...".

А в примере получается, что второго пользователя не пускают в процедуру дальше первой итерации, пока "функция окончательно не выйдет", т.е. пока первый пользователь не закончит работу с ней.