Почему могут «неработать» sigwait(SIGCONT) и pause()?
Я пытаюсь «придержать» ребенка пока родитель будет готов. Получив сигнал SIGCONT ребенок не просыпается по непонятной мне причине. Также я пробовал sigwait(SIGUSR1)/kill(SIGUSR1).
Эта проблема исчезает если запускать под strace.
На сейчас получилось придерживать ребенка при помощи raise(SIGSTOP).
Пример неработающего кода
int pid;
switch(pid = fork())
{
case 0:
pause();
execve();
default:
sleep(1);
kill(pid, SIGCONT);
break;
}
do {} while (1);