Критические секции
Категория реферата: Рефераты по информатике, программированию
Теги реферата: бесплатно решебник, рефераты на украинском языке
Добавил(а) на сайт: Сыровой.
Предыдущая страница реферата | 14 15 16 17 18 19 20 21 22 23 24 | Следующая страница реферата
// Если это не так, скорее всего мы имеем дело с ошибкой
ATLASSERT(pcs->OwningThread == (HANDLE)::GetCurrentThreadId());
if (--pcs->RecursionCount)
{
// Не последний вызов из этой нити.
// Уменьшаем значение поля LockCount
::InterlockedDecrement(&pcs->LockCount);
}
else
{
// Последний вызов. Нужно "разбудить" какую-либо
// из ожидающих ниток, если таковые имеются
ATLASSERT(NULL != pcs->OwningThread);
pcs->OwningThread = NULL;
if (::InterlockedDecrement(&pcs->LockCount) >= 0)
{
// Имеется, как минимум, одна ожидающая нить
_UnWaitCriticalSectionDbg(pcs);
}
}
}
// Удостоверяемся, что ::EnterCriticalSection() была вызвана
// до вызова этого метода
inline BOOL CheckCriticalSection(LPCRITICAL_SECTION pcs)
{
Рекомендуем скачать другие рефераты по теме: реферат на экономическую тему, инновационная деятельность.
Предыдущая страница реферата | 14 15 16 17 18 19 20 21 22 23 24 | Следующая страница реферата