From f6d595665eeada7f8f6edad874d1eb61d336ffbc Mon Sep 17 00:00:00 2001 From: zolliker Date: Mon, 10 Nov 2008 16:18:56 +0000 Subject: [PATCH] - correct treatment of timeout=NULL SKIPPED: psi/tecs/uselect.c --- uselect.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/uselect.c b/uselect.c index 2e1e25cd..dca4f0cc 100644 --- a/uselect.c +++ b/uselect.c @@ -1,5 +1,6 @@ #include #include +#include #include "uselect.h" /* for logging */ @@ -13,14 +14,19 @@ int uselect(int nfds, struct timeval *timeout) { sigset_t sigmask; - struct timespec tmo; + struct timespec tmo, *tmoPtr; int result; char buffer[80]; sigfillset(&sigmask); - tmo.tv_sec = timeout->tv_sec; - tmo.tv_nsec = timeout->tv_usec * 1000; - result = pselect(nfds, readfds, writefds, exceptfds, &tmo, &sigmask); + if (timeout) { + tmo.tv_sec = timeout->tv_sec; + tmo.tv_nsec = timeout->tv_usec * 1000; + tmoPtr = &tmo; + } else { + tmoPtr = NULL; + } + result = pselect(nfds, readfds, writefds, exceptfds, tmoPtr, &sigmask); if (result < 0 && errno == EINTR) { WriteToCommandLog("SYS>","pselect was interrupted!"); }