Нестойкий обработчик сигнала, вызывая signal()
в Windows система вызывает состояние состязания
Этот дефект происходит, когда вы вызываете signal()
от нестойкого обработчика сигнала на платформе Windows®.
Нестойкий обработчик сигнала сбрасывается после ловли сигнала. Обработчик не отлавливает последующие сигналы, если обработчик не восстановлен путем вызова signal()
. Нестойкий обработчик сигнала на платформе Windows сбрасывается к SIG_DFL
. Если другой сигнал прерывает выполнение обработчика, тот сигнал может вызвать состояние состязания между SIG_DFL
и существующий обработчик сигнала. Вызов signal()
может также привести к бесконечному циклу в обработчике.
Не вызывайте signal()
от обработчика сигнала на платформах Windows.
Группа: Программирование |
Язык: C | C++ |
Значение по умолчанию: На для рукописного кода, прочь для сгенерированного кода |
Синтаксис командной строки:
SIG_HANDLER_CALLING_SIGNAL
|
Удар: носитель |
ID CWE: 387, 474 |
Find defects (-checkers)
| Function called from signal handler not asynchronous-safe
| Return from computational exception signal handler
| Shared data access within signal handler