File:  [DVB] / dietlibc / lib / pselect.c
Revision 1.1: download - view: text, annotated - select for diffs
Mon May 17 17:44:56 2004 UTC (20 years ago) by leitner
Branches: MAIN
CVS tags: HEAD
add pselect

#include <sys/select.h>

int pselect(int n, fd_set* readfds, fd_set* writefds, fd_set* exceptfds,
            const struct timespec *timeout, const sigset_t *sigmask) {
  struct timeval t;
  sigset_t old;
  int r;
  if (timeout) {
    t.tv_sec=timeout->tv_sec;
    t.tv_usec=timeout->tv_nsec/1000;
    if (!t.tv_sec && !t.tv_usec && timeout->tv_nsec) ++t.tv_usec;
  }
  if (sigmask)
    sigprocmask(SIG_SETMASK,sigmask,&old);
  r=select(n,readfds,writefds,exceptfds,
	   timeout?&t:0);
  if (sigmask)
    sigprocmask(SIG_SETMASK,&old,0);
  return r;
}

LinuxTV legacy CVS <linuxtv.org/cvs>