#include #include #include "uselect.h" /* for logging */ #include "sics.h" #include "commandlog.h" /* an uninterruptable version of select. M.Z. Oct 2008 */ static int cnt; int uselect(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout) { sigset_t sigmask; struct timespec tmo; 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 (result < 0 && errno == EINTR) { WriteToCommandLog("SYS>","pselect was interrupted!"); } return result; }