View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000881 | 1003.1(2013)/Issue7+TC1 | System Interfaces | public | 2014-10-09 06:04 | 2020-10-16 09:06 |
Reporter | philip-guenther | Assigned To | ajosey | ||
Priority | normal | Severity | Comment | Type | Enhancement Request |
Status | Closed | Resolution | Duplicate | ||
Name | Philip Guenther | ||||
Organization | OpenBSD | ||||
User Reference | |||||
Section | ppoll() | ||||
Page Number | n/a | ||||
Line Number | n/a | ||||
Interp Status | --- | ||||
Final Accepted Text | |||||
Summary | 0000881: add ppoll() | ||||
Description | In general, select() is a harder to use interface than poll(): the fdset sizing is non-trivial with an amazing number of off-by-one errors in the select() call, exceptfds is misused or misinterpreted by many programs, supporting large fd values is inefficient, etc. The issue for POSIX is that pselect() was added without also adding ppoll(). #include <poll.h> int ppoll(struct pollfd fds[], nfds_t nfds, const struct timespec *, const sigset_t *); ppoll is to poll as pselect is to select. Already implemented under that name in both Linux and OpenBSD and, I believe, illumos. NetBSD has this functionality under the name pollts(). | ||||
Desired Action | Add ppoll() | ||||
Tags | No tags attached. |
duplicate of | 0001263 | Closed | 1003.1(2016/18)/Issue7+TC2 | Add ppoll( ) |
|
If a new interface should be added, we should rather add the interface from Solaris, currently: _pollsys(struct pollfd *fds, nfds_t nfd, const timespec_t *timeout, const sigset_t *sigmask) that exists since 2003. |
|
In Solaris 11, _pollsys() seems to be an internal libc interface that is not exposed for use by applications. It has no prototype in the headers, no man page, and attempting to use it produces an "undefined symbol" linker error. By contrast, Solaris 11 does have a useable ppoll(), with a prototype in <poll.h> and a man page (shared with poll()). |
|
Sorry, it seems that I did slip the sigmask parameter from the ppoll() proposal from above. BTW: the ppoll() call in Solaris just forwards to _pollsys() |
|
Martin has sent a call to sponsor the interface to The Open Group Base Working Group (as of Jan 22 2015) |
|
Although this bug was chronologically before bug 0001263, the latter has the detailed changes to add ppoll() and so this bug is being closed as a duplicate of it. |
Date Modified | Username | Field | Change |
---|---|---|---|
2014-10-09 06:04 | philip-guenther | New Issue | |
2014-10-09 06:04 | philip-guenther | Status | New => Under Review |
2014-10-09 06:04 | philip-guenther | Assigned To | => ajosey |
2014-10-09 06:04 | philip-guenther | Name | => Philip Guenther |
2014-10-09 06:04 | philip-guenther | Organization | => OpenBSD |
2014-10-09 06:04 | philip-guenther | Section | => ppoll() |
2014-10-09 06:04 | philip-guenther | Page Number | => n/a |
2014-10-09 06:04 | philip-guenther | Line Number | => n/a |
2014-10-09 09:16 | geoffclare | Project | 2008-TC1 => 1003.1(2013)/Issue7+TC1 |
2014-10-09 09:49 | joerg | Note Added: 0002410 | |
2014-10-09 10:47 | geoffclare | Note Added: 0002411 | |
2014-10-09 11:05 | joerg | Note Added: 0002412 | |
2015-01-29 17:12 | ajosey | Note Added: 0002530 | |
2019-08-03 15:22 | eblake | Relationship added | duplicate of 0001263 |
2020-10-16 09:06 | geoffclare | Interp Status | => --- |
2020-10-16 09:06 | geoffclare | Note Added: 0005048 | |
2020-10-16 09:06 | geoffclare | Status | Under Review => Closed |
2020-10-16 09:06 | geoffclare | Resolution | Open => Duplicate |