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

Отладка критических секций

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

Ошибки, связанные с реализацией

Это довольно легко обнаруживаемые ошибки, как правило, связанные с непарностью вызовов ::EnterCriticalSection() и ::LeaveCriticalSection().

Claw.ru | Рефераты по информатике, программированию | Критические секцииЛистинг 8. Пропущен вызов ::EnterCriticalSection().

// Процедура предполагает, что m_lockObject.Lock(); уже был вызван

void Pool()

{

  for (int i = 0; i < m_vectSinks.size(); i++)

  {

    m_lockObject.Unlock();

    m_vectSinks[i]->DoSomething();

    m_lockObject.Lock();

  }

}

::LeaveCriticalSection() без ::EnterCriticalSection() приведет к тому, что первый же вызов ::EnterCriticalSection() остановит выполнение нити навсегда.

Claw.ru | Рефераты по информатике, программированию | Критические секцииЛистинг 9. Пропущен вызов ::LeaveCriticalSection().

void Proc()

{

  m_lockObject.Lock();

  if (!m_pObject)


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


Категории:




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


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

   



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