Change in vdsm[master]: protocolDetector: Remove unneeded poll flags

nsoffer at redhat.com nsoffer at redhat.com
Tue Oct 7 22:49:40 UTC 2014


Nir Soffer has uploaded a new change for review.

Change subject: protocolDetector: Remove unneeded poll flags
......................................................................

protocolDetector: Remove unneeded poll flags

Protocol detector was using uneeded poll flags in the eventmask;
POLLHUP, POLLERR, and POLLPRI are output only, as documented in poll(2)
and Python library reference:
https://docs.python.org/2.6/library/select.html#select.poll.register

When checking output events, POLLPRI was used. This flag is needed only
to detect out-of-band data, which the other side can send using MSG_OOB
flag, as documented in send(2).

Since the READ_ONLY_MASK contains only select.POLLIN, and the
READ_WRITE_MASK was used only once, they were removed.  Developers
maintaing this code are expected to know these constants.

Change-Id: I94c535c7aa94410eb3158b298c3df3d1738abe74
Signed-off-by: Nir Soffer <nsoffer at redhat.com>
---
M vdsm/protocoldetector.py
1 file changed, 7 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/12/33912/1

diff --git a/vdsm/protocoldetector.py b/vdsm/protocoldetector.py
index 612d281..bec5f9f 100644
--- a/vdsm/protocoldetector.py
+++ b/vdsm/protocoldetector.py
@@ -66,11 +66,6 @@
     """
     log = logging.getLogger("vds.MultiProtocolAcceptor")
 
-    READ_ONLY_MASK = (select.POLLIN | select.POLLPRI | select.POLLHUP |
-                      select.POLLERR)
-
-    READ_WRITE_MASK = (select.POLLIN | select.POLLPRI |
-                       select.POLLOUT | select.POLLHUP | select.POLLERR)
     CLEANUP_INTERVAL = 30.0
 
     def __init__(self, host, port, sslctx=None):
@@ -86,8 +81,8 @@
 
         self._socket = self._create_socket(host, port)
         self._poller = select.poll()
-        self._poller.register(self._socket, self.READ_ONLY_MASK)
-        self._poller.register(self._read_fd, self.READ_ONLY_MASK)
+        self._poller.register(self._socket, select.POLLIN)
+        self._poller.register(self._read_fd, select.POLLIN)
         self._pending_connections = {}
         self._handlers = []
         self._next_cleanup = 0
@@ -115,14 +110,14 @@
         events = self._poller.poll(timeout)
 
         for fd, event in events:
-            if event & (select.POLLIN | select.POLLPRI):
+            if event & select.POLLIN:
                 if fd is self._read_fd:
                     self._maybe_stop()
                 elif fd is self._socket.fileno():
                     self._accept_connection()
                 else:
                     self._handle_connection_read(fd)
-            if event & (select.POLLOUT):
+            if event & select.POLLOUT:
                     self._handle_connection_write(fd)
 
         now = time.time()
@@ -208,9 +203,9 @@
         self._pending_connections[socket.fileno()] = (time.time(),
                                                       socket)
         if _is_handshaking(socket):
-            self._poller.register(socket, self.READ_WRITE_MASK)
+            self._poller.register(socket, select.POLLIN | select.POLLOUT)
         else:
-            self._poller.register(socket, self.READ_ONLY_MASK)
+            self._poller.register(socket, select.POLLIN)
 
     def _remove_connection(self, socket):
         self._poller.unregister(socket)
@@ -227,7 +222,7 @@
             socket.close()
         else:
             if not socket.is_handshaking:
-                self._poller.modify(socket, self.READ_ONLY_MASK)
+                self._poller.modify(socket, select.POLLIN)
 
     def _handle_connection_write(self, fd):
         _, client_socket = self._pending_connections[fd]


-- 
To view, visit http://gerrit.ovirt.org/33912
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I94c535c7aa94410eb3158b298c3df3d1738abe74
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Nir Soffer <nsoffer at redhat.com>


More information about the vdsm-patches mailing list