Austin Group Defect Tracker

Aardvark Mark IV


Viewing Issue Simple Details Jump to Notes ] Issue History ] Print ]
ID Category Severity Type Date Submitted Last Update
0000881 [1003.1(2013)/Issue7+TC1] System Interfaces Comment Enhancement Request 2014-10-09 06:04 2020-10-16 09:06
Reporter philip-guenther View Status public  
Assigned To ajosey
Priority normal Resolution Duplicate  
Status Closed  
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.
Attached Files

- Relationships
duplicate of 0001263Applied 1003.1(2016/18)/Issue7+TC2 Add ppoll( ) 

-  Notes
(0002410)
joerg (reporter)
2014-10-09 09:49

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.
(0002411)
geoffclare (manager)
2014-10-09 10:47

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()).
(0002412)
joerg (reporter)
2014-10-09 11:05

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()
(0002530)
ajosey (manager)
2015-01-29 17:12

Martin has sent a call to sponsor the interface to The Open Group Base Working Group (as of Jan 22 2015)
(0005048)
geoffclare (manager)
2020-10-16 09:06

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.

- Issue History
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
2015-05-07 08:44 dancol Issue Monitored: dancol
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


Mantis 1.1.6[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker