|
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 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.