man.bsd.lv manual page server

Manual Page Search Parameters

PSELECT(2) System Calls Manual PSELECT(2)

pselectsynchronous I/O multiplexing a la POSIX.1g

library “libc”

#include <sys/select.h>

int
pselect(int nfds, fd_set * restrict readfds, fd_set * restrict writefds, fd_set * restrict exceptfds, const struct timespec * restrict timeout, const sigset_t * restrict newsigmask);

The () function was introduced by IEEE Std 1003.1g-2000 (“POSIX.1g”) as a slightly stronger version of select(2). The nfds, readfds, writefds, and exceptfds arguments are all identical to the analogous arguments of (). The timeout argument in pselect() points to a const struct timespec rather than the (modifiable) struct timeval used by select(); as in select(), a null pointer may be passed to indicate that pselect() should wait indefinitely. Finally, newsigmask specifies a signal mask which is set while waiting for input. When pselect() returns, the original signal mask is restored.

See select(2) for a more detailed discussion of the semantics of this interface, and for macros used to manipulate the fd_set data type.

The pselect() function returns the same values and under the same conditions as select().

The pselect() function may fail for any of the reasons documented for select(2) and (if a signal mask is provided) sigprocmask(2).

kqueue(2), poll(2), select(2), sigprocmask(2)

The pselect() function conforms to IEEE Std 1003.1-2001 (“POSIX.1”).

The pselect() function first appeared in DragonFly 1.11.

This manual page was originally written by Garrett Wollman <wollman@FreeBSD.org> for FreeBSD and later modified for DragonFly.

The pselect() implementation in libc_r (user multi-threading) does not mask signals, calls select(), and restores the original signal mask atomically. A calling user thread using pselect() to block until either a signal occurs or some descriptor changes may therefore block forever. The pselect() implementations in libthread_xu (kernel multi-threading) and libc (single-threading) operate atomically and are therefore race-free.

December 24, 2007 DragonFly-5.6.1