recvfrom and timeout signal

Christopher Faylor cgf@redhat.com
Tue Feb 19 13:44:00 GMT 2002


On Tue, Feb 19, 2002 at 10:28:02PM +0100, Piotr St?pie? wrote:
>Hi All,
>
>I try to implement timeout for recvfrom:
>
>	struct	sigaction action;
>	action.sa_handler = alarm_signal;
>	action.sa_flags = 0;
>	sigemptyset(&(action.sa_mask)); 	/* ignore all known signals */
>	sigaction(SIGALRM,&action,NULL);  	/* ensures that SA_RESTART is NOT set */
>
>	alarm(TIMEOUT);
>	int st=recvfrom(sockfd,buff,sizeof(buff),0,(sockaddr*)&srv_addr,&sz);
>	if(st == -1){
>		if(errno==EINTR){
>			/* timeout */
>		}else{
>			alarm(0); /* reset alarm */
>		}
>	}
>
>but the process is never woken by SIGALRM when no packet is received.
>The recvfrom waits forever.
>
>Has anybody an idea what can be wrong ?

Nope.  Send an actual small working test case and someone will probably
investigate it.

cgf

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list