Change in vdsm[master]: utils: Remove duplicate set non-blocking functions

dkuznets at redhat.com dkuznets at redhat.com
Mon Jun 30 13:53:46 UTC 2014


Dima Kuznetsov has uploaded a new change for review.

Change subject: utils: Remove duplicate set non-blocking functions
......................................................................

utils: Remove duplicate set non-blocking functions

Current code had 2 implementations of functions that turned on the
O_NONBLOCK flag on file descriptors, none of which were in lib, to avoid
creating yet another implementation for lib code to use, one of existing
implementations was moved to utils.

Change-Id: I1fd242e8b437e485e45127d083c35957ccecf577
Signed-off-by: Dima Kuznetsov <dkuznets at redhat.com>
---
M lib/vdsm/utils.py
M vdsm/protocoldetector.py
M vdsm/storage/misc.py
M vdsm/storage/remoteFileHandler.py
4 files changed, 12 insertions(+), 19 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/13/29413/1

diff --git a/lib/vdsm/utils.py b/lib/vdsm/utils.py
index 2ba5762..7d0b659 100644
--- a/lib/vdsm/utils.py
+++ b/lib/vdsm/utils.py
@@ -1141,3 +1141,11 @@
 
     def prependDefer(self, func, *args, **kwargs):
         self._finally.insert(0, (func, args, kwargs))
+
+
+def setNonBlocking(fd):
+    if hasattr(fd, "fileno"):
+        fd = fd.fileno()
+
+    fl = fcntl.fcntl(fd, fcntl.F_GETFL)
+    fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK)
diff --git a/vdsm/protocoldetector.py b/vdsm/protocoldetector.py
index d36f8d5..f258deb 100644
--- a/vdsm/protocoldetector.py
+++ b/vdsm/protocoldetector.py
@@ -19,7 +19,6 @@
 #
 
 import errno
-import fcntl
 import logging
 import os
 import select
@@ -69,9 +68,9 @@
         self._port = port
 
         self._read_fd, self._write_fd = os.pipe()
-        self._set_non_blocking(self._read_fd)
+        utils.setNonBlocking(self._read_fd)
         utils.closeOnExec(self._read_fd)
-        self._set_non_blocking(self._write_fd)
+        utils.setNonBlocking(self._write_fd)
         utils.closeOnExec(self._write_fd)
 
         self._socket = self._create_socket(host, port)
@@ -83,11 +82,6 @@
         self._next_cleanup = 0
         self._required_size = None
         self._is_running = False
-
-    def _set_non_blocking(self, fd):
-        flags = fcntl.fcntl(fd, fcntl.F_GETFL, 0)
-        flags = flags | os.O_NONBLOCK
-        fcntl.fcntl(fd, fcntl.F_SETFL, flags)
 
     @traceback(on=log.name)
     def serve_forever(self):
diff --git a/vdsm/storage/misc.py b/vdsm/storage/misc.py
index d0869ee..ab2b4fd 100644
--- a/vdsm/storage/misc.py
+++ b/vdsm/storage/misc.py
@@ -46,7 +46,6 @@
 import threading
 import types
 import weakref
-import fcntl
 import inspect
 
 from vdsm import constants
@@ -1072,11 +1071,3 @@
 def deprecated(f):
     """Used to mark exported methods as deprecated"""
     return f
-
-
-def setNonBlocking(fd):
-    if hasattr(fd, "fileno"):
-        fd = fd.fileno()
-
-    fl = fcntl.fcntl(fd, fcntl.F_GETFL)
-    fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK)
diff --git a/vdsm/storage/remoteFileHandler.py b/vdsm/storage/remoteFileHandler.py
index ae3e54a..9bb57d3 100644
--- a/vdsm/storage/remoteFileHandler.py
+++ b/vdsm/storage/remoteFileHandler.py
@@ -126,8 +126,8 @@
     def __init__(self, myRead, myWrite):
         self._myWrite = myWrite
         self._myRead = myRead
-        misc.setNonBlocking(self._myWrite)
-        misc.setNonBlocking(self._myRead)
+        utils.setNonBlocking(self._myWrite)
+        utils.setNonBlocking(self._myRead)
         self._poller = select.poll()
 
     @contextmanager


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1fd242e8b437e485e45127d083c35957ccecf577
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Dima Kuznetsov <dkuznets at redhat.com>


More information about the vdsm-patches mailing list