Мне нужно в секции catch(..){} определить, владеет ли данный поток в данной критической секции или нет. Можно, конечно лишний раз вызвать функцию LeaveCriticalSection, но в документации на эту функцию написано:
If a thread calls LeaveCriticalSection when it does not have ownership of the specified critical section object, an error occurs that may cause another thread using EnterCriticalSection to wait indefinitely.
Из чего я понял, что если будет вызвана данная функция, когда данный поток не владеет критической секции, то вызов функции EnterCriticalSection может заблокировать поток, что крайне не желательно
Здравствуйте, Melamed, Вы писали:
Проблема решена благодаря данной статьи
Критические секцииАвтор(ы): Павел Блудов
Дата: 14.03.2005
В статье рассматриваются аспекты работы с критическими секциями, их внутреннее устройство и способы отладки
M>Мне нужно в секции catch(..){} определить, владеет ли данный поток в данной критической секции или нет. Можно, конечно лишний раз вызвать функцию LeaveCriticalSection, но в документации на эту функцию написано:
M>M>If a thread calls LeaveCriticalSection when it does not have ownership of the specified critical section object, an error occurs that may cause another thread using EnterCriticalSection to wait indefinitely.
M>Из чего я понял, что если будет вызвана данная функция, когда данный поток не владеет критической секции, то вызов функции EnterCriticalSection может заблокировать поток, что крайне не желательно