Реферат: Критические секции

{

ATLTRACE("Critical section timeout (%u msec):"

" tid 0x%04X owner tid 0x%04X\n"

"Owner lock from %hs line %u, waiter %hs line %u\n"

, DEADLOCK_TIMEOUT

, ::GetCurrentThreadId(), pcs->OwningThread

, pcs->m_azFile, pcs->m_nLine, azFile, nLine);

}

}while(WAIT_TIMEOUT == dwWait);

ATLASSERT(WAIT_OBJECT_0 == dwWait);

}

// Выставляемсобытиевактивноесостояние

static inline VOID _UnWaitCriticalSectionDbg(LPCRITICAL_SECTION pcs)

{

HANDLE sem = _CriticalSectionGetEvent(pcs);

BOOL b = ::SetEvent(sem);

ATLASSERT(b);

}

// Инициализируем критическую секцию.

inline VOID InitializeCriticalSectionDbg(LPCRITICAL_SECTION_DBG pcs)

{

// Пусть система заполнит свои поля

InitializeCriticalSection(pcs);

// Заполняем наши поля

pcs->m_nLine = 0;

pcs->m_azFile = NULL;

}

// Освобождаем ресурсы, занимаемые критической секцией

inline VOID DeleteCriticalSectionDbg(LPCRITICAL_SECTION_DBG pcs)

К-во Просмотров: 779
Бесплатно скачать Реферат: Критические секции