Могут ли спинлоки в обработчиках сигналов вызвать тупик?C++

Программы на C++. Форум разработчиков
Anonymous
Могут ли спинлоки в обработчиках сигналов вызвать тупик?

Сообщение Anonymous »

Я читал, что использование мутекса в обработчике сигнала может вызвать тупик, если поток основной программы заблокировал Mutex до того, как обработчик сигнала будет вызван. Я также читал предложения, которые обработчики сигнала должны вместо этого использовать STD :: Atomic Types, для которых is_lock_free () возвращает true. std :: atomic_flag - это один из таких типов, и Cppreference даже имеет реализацию Spinlock на своей странице std :: atomic_flag. из мутекс в обработке сигнала и в основной программе, не могут быть тупиками? Если нить в основной программе блокирует спинлок, а затем работает обработчик сигнала и пытается заблокировать спинлок, не произойдет тупик?

Подробнее здесь: https://stackoverflow.com/questions/794 ... e-deadlock

Вернуться в «C++»