Нет, у меня-таки ощущение, что всю программу физтеха по информатике решили на хабр запостить.
Где тройной хендшейк? Никто ж не гарантирует, что другие процессы в системе не будут посылать эти сигналы.
Порядок доставки обычных сигналов не гарантирован. Под линуксом последовательная доставка работает из-за особенностей реализации, но, насколько я знаю, её никто не гарантирует.
Для Real Time сигналов всё ещё хитрее — сначала доставляются сигналы с наименьшим номером, т.е. они самые срочные.
Чтобы сделать доставку надёжной и переносимой предлагаю осуществить двустороннюю передачу данных с «подтверждением» каждого сигнала :)
И вправду, я недоглядел, извиняюсь. Но тут возникают потенциальные гонки :) глобальные переменные не atomic_t, лихой компилятор может сделать обращения к ним неатомарными.
В linuxе есть штатный способ: Можно через prctl(PR_SET_PDEATHSIG,sig_num); назначить сигнал который будет присылаться при завершении существования родительского процесса.
А разве не может возникнуть ситуации, когда prctl в ребёнке ещё не вызвалась, а родитель уже умер? Ведь тогда на момент вызова prctl у ребёнка будет уже новый родитель?
Передача файла сигналами