Back to index

glibc  2.9
Functions
select.h File Reference
#include <misc/sys/select.h>

Go to the source code of this file.

Functions

int __pselect (int __nfds, fd_set *__readfds, fd_set *__writefds, fd_set *__exceptfds, const struct timespec *__timeout, const __sigset_t *__sigmask)
int __select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout)

Function Documentation

int __pselect ( int  __nfds,
fd_set __readfds,
fd_set __writefds,
fd_set __exceptfds,
const struct timespec __timeout,
const __sigset_t __sigmask 
)

Definition at line 35 of file pselect.c.

{
  struct timeval tval;
  int retval;
  sigset_t savemask;

  /* Change nanosecond number to microseconds.  This might mean losing
     precision and therefore the `pselect` should be available.  But
     for now it is hardly found.  */
  if (timeout != NULL)
    TIMESPEC_TO_TIMEVAL (&tval, timeout);

  /* The setting and restoring of the signal mask and the select call
     should be an atomic operation.  This can't be done without kernel
     help.  */
  if (sigmask != NULL)
    __sigprocmask (SIG_SETMASK, sigmask, &savemask);

  /* Note the pselect() is a cancellation point.  But since we call
     select() which itself is a cancellation point we do not have
     to do anything here.  */
  retval = __select (nfds, readfds, writefds, exceptfds,
                   timeout != NULL ? &tval : NULL);

  if (sigmask != NULL)
    __sigprocmask (SIG_SETMASK, &savemask, NULL);

  return retval;
}

Here is the call graph for this function:

int __select ( int  __nfds,
fd_set *__restrict  __readfds,
fd_set *__restrict  __writefds,
fd_set *__restrict  __exceptfds,
struct timeval *__restrict  __timeout 
)

Here is the caller graph for this function: