Нестойкий обработчик сигнала, вызывая 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