From fe8d9666575284c10b6bf803b9c446523da1d23a Mon Sep 17 00:00:00 2001 From: Berker Peksag Date: Tue, 19 Jul 2016 21:09:26 +0300 Subject: Issue #27567: Expose the POLLRDHUP constant in the select module --- Doc/library/select.rst | 3 +++ Misc/NEWS | 3 ++- Modules/selectmodule.c | 8 ++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Doc/library/select.rst b/Doc/library/select.rst index 4fafb11..5494eef 100644 --- a/Doc/library/select.rst +++ b/Doc/library/select.rst @@ -391,6 +391,9 @@ linearly scanned again. :c:func:`select` is O(highest file descriptor), while +-------------------+------------------------------------------+ | :const:`POLLHUP` | Hung up | +-------------------+------------------------------------------+ + | :const:`POLLRDHUP`| Stream socket peer closed connection, or | + | | shut down writing half of connection | + +-------------------+------------------------------------------+ | :const:`POLLNVAL` | Invalid request: descriptor not open | +-------------------+------------------------------------------+ diff --git a/Misc/NEWS b/Misc/NEWS index 803bef0..16d4476 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -28,7 +28,8 @@ Library - Expose the EPOLLEXCLUSIVE constant (when it is defined) in the select module. -- Issue #27567: Expose the EPOLLRDHUP constant in the select module. +- Issue #27567: Expose the EPOLLRDHUP and POLLRDHUP constants in the select + module. - Issue #1621: Avoid signed int negation overflow in the "audioop" module. diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c index c84c3cc..0f90ce2 100644 --- a/Modules/selectmodule.c +++ b/Modules/selectmodule.c @@ -4,6 +4,10 @@ have any value except INVALID_SOCKET. */ +#if defined(HAVE_POLL_H) && !defined(_GNU_SOURCE) +#define _GNU_SOURCE +#endif + #include "Python.h" #include @@ -2452,6 +2456,10 @@ PyInit_select(void) #ifdef POLLMSG PyModule_AddIntMacro(m, POLLMSG); #endif +#ifdef POLLRDHUP + /* Kernel 2.6.17+ */ + PyModule_AddIntMacro(m, POLLRDHUP); +#endif } #endif /* HAVE_POLL */ -- cgit v0.12