Дефекты параллелизма

Дефекты связаны с многозадачным кодом

Результаты Polyspace

Atomic load and store sequence not atomicПеременная, доступная между загрузкой и операциями хранилища
Atomic variable accessed twice in an expressionПеременная может быть изменена между доступами
Blocking operation while holding lockЗадача выполняет долгую операцию при содержании блокировки
Data raceНесколько задач выполняют незащищенные неатомарные операции на совместно используемой переменной
Data race including atomic operationsНесколько задач выполняют незащищенные операции на совместно используемой переменной
Data race through standard library function callНесколько задач выполняют незащищенные вызовы к небезопасной потоком стандартной библиотечной функции
DeadlockВызовите последовательность, чтобы заблокировать причину функций две задачи блокировать друг друга
Destruction of locked mutexЗадача пытается уничтожить взаимное исключение в заблокированном состоянии
Double lockФункция блокировки вызвана дважды в задаче без промежуточного вызова, чтобы разблокировать функцию
Double unlockРазблокируйте функцию, называется дважды в задаче без промежуточного вызова, чтобы заблокировать функцию
Function that can spuriously fail not wrapped in loopЦикл проверяет условие отказа после возможного побочного отказа
Function that can spuriously wake up not wrapped in loopЦикл проверяет условие пробуждения после возможного побочного пробуждения
Join or detach of a joined or detached threadРаспараллельте, к которому ранее соединили или отсоединился, соединен или отсоединен снова
Missing lockРазблокируйте функцию без функции блокировки
Missing or double initialization of thread attributeДублированная инициализация потока приписывает или неинициализированный атрибут потока, используемый в функциях, которые ожидают инициализированные атрибуты
Missing unlockФункция блокировки без разблокировала функцию
Signal call in multithreaded programПрограмма с несколькими потоками использует функцию сигнала
Thread-specific memory leakДинамически выделенная специфичная для потока память, не освобожденная перед концом потока
Use of signal killing threadНепойманный сигнал уничтожает целый процесс вместо определенного потока
Use of undefined thread IDРаспараллельте ID от не пройдено создания потока, используемого в последующих функциях потока

Темы

Группы дефекта средства поиска ошибки

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

Анализируйте многозадачные программы в Polyspace

Обнаружьте гонки данных или мертвые блокировки, или смотрите всесторонний анализ использования совместно используемой переменной.

Меры защиты для совместно используемых переменных в многозадачном коде

Защитите совместно используемые переменные с помощью критического раздела, временного исключения, приоритетов или запрета прерываний.