Задать вопрос
@Baalskra

Может ли прерывание прервать выполнение конструктора / деструктора в С++?

Пишу для встраиваемых систем на С++, и возник вопрос - нужно ли в конструкторах / деструкторах защищать код критическими секциями?
  • Вопрос задан
  • 193 просмотра
Подписаться 1 Простой Комментировать
Решение пользователя jcmvbkbc К ответам на вопрос (4)
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Может ли прерывание прервать выполнение конструктора / деструктора в С++?

Да, конечно может, как и любой другой код, явно не защищённый от прерываний.

нужно ли в конструкторах / деструкторах защищать код критическими секциями?

Нужно защищать любое состояние, к которому может обращаться код из разных контекстов выполнения -- например из разных потоков или из потока и обработчика прерывания. В ядре linux (где разных типов контекста много и разных способов синхронизации тоже много) есть руководство, что и когда использовать.
Ответ написан
Комментировать