Обнаружение тупиков на мьютексах в многопоточных приложениях - page 4

В.С. Белоус
,
В.А. Крищенко
,
Н.Ю. Рязанова
4
Рис. 4.
Пример программы, искусственно создающей
тупиковую ситуацию
Рис. 5.
Фрагмент дампа, полученного в программе strace
Функция futex() при блокировке, в качестве одного из параметров
принимает FUTEX_WAIT_PRIVATE, а при освобождении —
FUTEX_WAKE_PRIVATE. В результате анализа данных параметров
можно однозначно определить, какое действие будет выполнено —
блокировка или освобождение. Перехват функции futex() позволяет
1,2,3 5,6,7,8,9,10,11
Powered by FlippingBook