Real-time signals delivery order
Jul. 11th, 2007 04:58 pmНеправильно написав тест для проверки порядка доставки сигналов процессу, который специфицирован в стандарте POSIX, изменил код функции next_signal() в ядре Linux и послал патч в LKML. Через некоторое время мне указали на проблему в тестовой программе. Измененный тест прошел нормально, поэтому изменения были отклонены. Оказалось, что если не блокировать сигналы в обработчике, то порядок доставки сигналов процессу может измениться на противоположный тому, который определяет стандарт. Этот пример демонстрирует, к каким серьезным ошибкам может привести неаккуратность в работе с неатомарными операциями.