- changed select calls to newly introduced uselect
This commit is contained in:
30
uselect.c
Normal file
30
uselect.c
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#include <signal.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#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;
|
||||||
|
}
|
Reference in New Issue
Block a user