[질문] sigaction 과 pause 사용에 문제가 생겼습니다.

s97083의 이미지

안녕하세요
코드 참고해서 수정을 좀하고 있는데 아래와 같이 핸들러를 등록하고..

act.sa_handler = sighandler;
act.sa_flags = SA_RESTART;//0;
sigemptyset(&act.sa_mask);
sigaddset( &sigset, SIGUSR2);
sigaction(SIGUSR2, &act, NULL);
중간에 pause를 호출 했습니다.
while(run_flg) { <-- 전역 변수...
pause();
}

그리고 호출되는 sig 함수에 while 문의 탈출 조건을 걸었습니다.
void sighandler(int signo)
{
run_flg = 0;
}
문제는 pause까지 간 이후에 시그널을 받아도 pause 이후 부분부터 다시 시작하지를 않고요.
그냥 시그널만 받는 부분만 살아있습니다.

pause 부분부터 다시 시작하게 할 방법이 없을까요?
읽어주셔서 감사합니다.