Образовательный портал Claw.ru
Всё для учебы, работы и отдыха
» Шпаргалки, рефераты, курсовые
» Сочинения и изложения
» Конспекты и лекции
» Энциклопедии

VOID LeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection);

Освобождает критическую секцию,

Claw.ru | Рефераты по информатике, программированию | Критические секцииЛистинг 5. Псевдокод RtlLeaveCriticalSection из ntdll.dll

VOID RtlLeaveCriticalSectionDbg(LPRTL_CRITICAL_SECTION pcs)

{

  if (--pcs->RecursionCount)

    ::InterlockedDecrement(&pcs->LockCount);

  else if (::InterlockedDecrement(&pcs->LockCount) >= 0)

    RtlpUnWaitCriticalSection(pcs);

}

Классы-обертки для критических секций

Claw.ru | Рефераты по информатике, программированию | Критические секцииЛистинг 6. Код классов CLock, CAutoLock и CScopeLock.

class CLock

{

  friend class CScopeLock;

  CRITICAL_SECTION m_CS;

public:

  void Init() { ::InitializeCriticalSection(&m_CS); }

  void Term() { ::DeleteCriticalSection(&m_CS); }

  void Lock() { ::EnterCriticalSection(&m_CS); }

  BOOL TryLock() { return ::TryEnterCriticalSection(&m_CS); }

  void Unlock() { ::LeaveCriticalSection(&m_CS); }


Рекомендуем скачать другие рефераты по теме: реферат на экономическую тему, инновационная деятельность.


Категории:




Предыдущая страница реферата | 2  3  4  5  6  7  8  9  10  11  12 |


Поделитесь этой записью или добавьте в закладки

   



Рефераты от А до Я