[Python-checkins] cpython: add EPOLLEXCLUSIVE

benjamin.peterson python-checkins at python.org
Tue Jul 19 01:02:53 EDT 2016


https://hg.python.org/cpython/rev/b92b0c1bcd67
changeset:   102406:b92b0c1bcd67
user:        Benjamin Peterson <benjamin at python.org>
date:        Mon Jul 18 22:02:44 2016 -0700
summary:
  add EPOLLEXCLUSIVE

files:
  Doc/library/select.rst |  69 ++++++++++++++++-------------
  Misc/NEWS              |   2 +
  Modules/selectmodule.c |   3 +
  3 files changed, 42 insertions(+), 32 deletions(-)


diff --git a/Doc/library/select.rst b/Doc/library/select.rst
--- a/Doc/library/select.rst
+++ b/Doc/library/select.rst
@@ -266,38 +266,43 @@
 
    *eventmask*
 
-   +-----------------------+-----------------------------------------------+
-   | Constant              | Meaning                                       |
-   +=======================+===============================================+
-   | :const:`EPOLLIN`      | Available for read                            |
-   +-----------------------+-----------------------------------------------+
-   | :const:`EPOLLOUT`     | Available for write                           |
-   +-----------------------+-----------------------------------------------+
-   | :const:`EPOLLPRI`     | Urgent data for read                          |
-   +-----------------------+-----------------------------------------------+
-   | :const:`EPOLLERR`     | Error condition happened on the assoc. fd     |
-   +-----------------------+-----------------------------------------------+
-   | :const:`EPOLLHUP`     | Hang up happened on the assoc. fd             |
-   +-----------------------+-----------------------------------------------+
-   | :const:`EPOLLET`      | Set Edge Trigger behavior, the default is     |
-   |                       | Level Trigger behavior                        |
-   +-----------------------+-----------------------------------------------+
-   | :const:`EPOLLONESHOT` | Set one-shot behavior. After one event is     |
-   |                       | pulled out, the fd is internally disabled     |
-   +-----------------------+-----------------------------------------------+
-   | :const:`EPOLLRDHUP`   | Stream socket peer closed connection or shut  |
-   |                       | down writing half of connection.              |
-   +-----------------------+-----------------------------------------------+
-   | :const:`EPOLLRDNORM`  | Equivalent to :const:`EPOLLIN`                |
-   +-----------------------+-----------------------------------------------+
-   | :const:`EPOLLRDBAND`  | Priority data band can be read.               |
-   +-----------------------+-----------------------------------------------+
-   | :const:`EPOLLWRNORM`  | Equivalent to :const:`EPOLLOUT`               |
-   +-----------------------+-----------------------------------------------+
-   | :const:`EPOLLWRBAND`  | Priority data may be written.                 |
-   +-----------------------+-----------------------------------------------+
-   | :const:`EPOLLMSG`     | Ignored.                                      |
-   +-----------------------+-----------------------------------------------+
+   +-------------------------+-----------------------------------------------+
+   | Constant                | Meaning                                       |
+   +=========================+===============================================+
+   | :const:`EPOLLIN`        | Available for read                            |
+   +-------------------------+-----------------------------------------------+
+   | :const:`EPOLLOUT`       | Available for write                           |
+   +-------------------------+-----------------------------------------------+
+   | :const:`EPOLLPRI`       | Urgent data for read                          |
+   +-------------------------+-----------------------------------------------+
+   | :const:`EPOLLERR`       | Error condition happened on the assoc. fd     |
+   +-------------------------+-----------------------------------------------+
+   | :const:`EPOLLHUP`       | Hang up happened on the assoc. fd             |
+   +-------------------------+-----------------------------------------------+
+   | :const:`EPOLLET`        | Set Edge Trigger behavior, the default is     |
+   |                         | Level Trigger behavior                        |
+   +-------------------------+-----------------------------------------------+
+   | :const:`EPOLLONESHOT`   | Set one-shot behavior. After one event is     |
+   |                         | pulled out, the fd is internally disabled     |
+   +-------------------------+-----------------------------------------------+
+   | :const:`EPOLLEXCLUSIVE` | Wake only one epoll object when the           |
+   |                         | associated fd has an event. The default (if   |
+   |                         | this flag is not set) is to wake all epoll    |
+   |                         | objects polling on on a fd.                   |
+   +-------------------------+-----------------------------------------------+
+   | :const:`EPOLLRDHUP`     | Stream socket peer closed connection or shut  |
+   |                         | down writing half of connection.              |
+   +-------------------------+-----------------------------------------------+
+   | :const:`EPOLLRDNORM`    | Equivalent to :const:`EPOLLIN`                |
+   +-------------------------+-----------------------------------------------+
+   | :const:`EPOLLRDBAND`    | Priority data band can be read.               |
+   +-------------------------+-----------------------------------------------+
+   | :const:`EPOLLWRNORM`    | Equivalent to :const:`EPOLLOUT`               |
+   +-------------------------+-----------------------------------------------+
+   | :const:`EPOLLWRBAND`    | Priority data may be written.                 |
+   +-------------------------+-----------------------------------------------+
+   | :const:`EPOLLMSG`       | Ignored.                                      |
+   +-------------------------+-----------------------------------------------+
 
 
 .. method:: epoll.close()
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -26,6 +26,8 @@
 Library
 -------
 
+- Expose the EPOLLEXCLUSIVE (when it is defined) in the select module.
+
 - Issue #27567: Expose the EPOLLRDHUP constant 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
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -2479,6 +2479,9 @@
     /* Kernel 2.6.2+ */
     PyModule_AddIntMacro(m, EPOLLONESHOT);
 #endif
+#ifdef EPOLLEXCLUSIVE
+    PyModule_AddIntMacro(m, EPOLLEXCLUSIVE);
+#endif
 
 #ifdef EPOLLRDNORM
     PyModule_AddIntMacro(m, EPOLLRDNORM);

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list