On Tue, 2006-01-17 at 10:29 -0600, Lim Hock-Chai wrote:
> I'm using alarm to control timeout on recv() and having the following
> problem: 
>  
> 1) When timeout occur (errno = EINTR), the program will continue to get
> the timeout error without at least waiting for timeout to occur again
> (which is set to 10 secs).  Below is a code snap shot.
>  
> 
> C                ...loop start here
> C                   eval      recvData = *blank                        
>  *       set time out to 10 sec                                        
> C                   callp     alarm(10)                                
> C                   eval      recvlen = recv(hostSock :%addr(recvData) 
> C                                           :%size(recvData)-10        
> C                                           :0)                        
>  *       disable timeout                                               
> C                   callp     alarm(0)                                 
>                                                                        
>  *   if time out occured, return back to the main procedure to try to  
>  *   send the @GO command.                                             

> C                   if        (errno = EINTR)                          

I thought the compiler would complain if you didn't use parens on
function calls.  Is this code checking a field called errno, or is it
running the function errno()?

Perhaps try it as   if errno() = EINTR ?

Also, on the second time through, perhaps you could tell us the value of
recvlen?  Was it 0?

Regards,
Rich




This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.