Я пытаюсь написать программу, которая не использует библиотеки pthreads или семафоров.Я хочу сделать некоторую синхронизацию с сигналами.Я читал о них в нескольких книгах по Unix, но до сих пор не совсем понял.Я написал некоторый макет / код программы, это не моя программа, но она дает представление о том, как я пытаюсь организовать процессы / сигналы.Похоже ли это на правдоподобное решение?
Ход программы:
Мэйн разветвляется случайное число раз и выполняет «программу» для каждого потомка.Программа присваивает дочернему значению значение 1 или 2 (например, ввод или вывод и т. Д.).
Я хочу, чтобы синхронизировать этих детей.Я думал, что использование сигналов возможно, и из того, что я прочитал, я хотел бы сделать что-то вроде:
Если child == 1, отправить parent (main) SIGUSR1, иначе, если child == 2 отправить parent (main) СИГУСР2.Когда родитель обслуживает сигнал, тогда конец.
Теперь вернемся в главное, я хочу организовать эти входящие сигналы.Я бы принимал только один тип за раз, поэтому, если ребенок отправляет мне SIGUSR1, я блокирую все SIGUSR2, или если ребенок сначала отправляет мне SIGUSR2, то я блокирую все SIGUSR1.Main будет принимать сигнал и обслуживать все сигналы этого типа до тех пор, пока его больше не будет, затем он будет проверять / разблокировать другой тип и обслуживать любой из этого типа, если они существуют, иначе main будет ожидать больше сигналов.
Похоже ли это на правильное использование сигналов и возможно ли это даже для сигналов?
Спасибо!