pro*c에서 alarm쓰기

MackTheKnife의 이미지

db연결시 timeout을 줄려고합니다.
근데 알람으로 해도 잘 안되네여..

/* SIGALRM 핸들러 설치 */
    act.sa_handler=TimeoutHandler;
    sigemptyset(&act.sa_mask);
    act.sa_flags &= ~SA_RESTART;
    sigaction(SIGALRM,&act,NULL);


....
 alarm(10);
 EXEC SQL CONNECT :connString; <--여기서 계속 block 상태
...

alarm시그널이 발생하고 return이 되면 blocking 되어 있는 함수 다음이 실행되어야하는게 아닌가여?

그럼 DB연결시 timeout은 어떻게 해야하져?
[/code]

MackTheKnife의 이미지

jmp_buf a;

timeouthandler()
{

longjmp(a,1);
}


main()
{

if(setjmp(a) == 0) connect;

}