aboutsummaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2012-11-19 03:50:52 +0900
committerBen Pfaff <blp@nicira.com>2012-11-19 09:11:12 -0800
commitbb1c9a6518807ac131a3a7ce77453004e05262e4 (patch)
tree0e4db482d70eab26da089112e2a5eadd4b4cc08a /python
parent568e23fc2772235204dcabb61e1425b312070da2 (diff)
don't use select.POLL* constants
Python doesn't have select.POLL* constants on some architectures (e.g. MacOSX). This code needs to define the constants for itself. It uses select.POLL* constants only internally (doesn't pass them outside). So there is no harm even if the definition would conflict with Python's those. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'python')
-rw-r--r--python/ovs/poller.py33
-rw-r--r--python/ovs/socket_util.py2
-rw-r--r--python/ovs/stream.py7
3 files changed, 23 insertions, 19 deletions
diff --git a/python/ovs/poller.py b/python/ovs/poller.py
index c04c9b36..7d15f3ed 100644
--- a/python/ovs/poller.py
+++ b/python/ovs/poller.py
@@ -20,6 +20,11 @@ import socket
vlog = ovs.vlog.Vlog("poller")
+POLLIN = 0x001
+POLLOUT = 0x004
+POLLERR = 0x008
+POLLHUP = 0x010
+POLLNVAL = 0x020
# eventlet/gevent doesn't support select.poll. If select.poll is used,
# python interpreter is blocked as a whole instead of switching from the
@@ -39,12 +44,12 @@ class _SelectSelect(object):
if isinstance(fd, socket.socket):
fd = fd.fileno()
assert isinstance(fd, int)
- if events & select.POLLIN:
+ if events & POLLIN:
self.rlist.append(fd)
- events &= ~select.POLLIN
- if events & select.POLLOUT:
+ events &= ~POLLIN
+ if events & POLLOUT:
self.wlist.append(fd)
- events &= ~select.POLLOUT
+ events &= ~POLLOUT
if events:
self.xlist.append(fd)
@@ -63,13 +68,13 @@ class _SelectSelect(object):
# events_dict[fd] |= event
events_dict = {}
for fd in rlist:
- events_dict[fd] = events_dict.get(fd, 0) | select.POLLIN
+ events_dict[fd] = events_dict.get(fd, 0) | POLLIN
for fd in wlist:
- events_dict[fd] = events_dict.get(fd, 0) | select.POLLOUT
+ events_dict[fd] = events_dict.get(fd, 0) | POLLOUT
for fd in xlist:
- events_dict[fd] = events_dict.get(fd, 0) | (select.POLLERR |
- select.POLLHUP |
- select.POLLNVAL)
+ events_dict[fd] = events_dict.get(fd, 0) | (POLLERR |
+ POLLHUP |
+ POLLNVAL)
return events_dict.items()
@@ -168,15 +173,15 @@ class Poller(object):
for fd, revents in events:
if revents != 0:
s = ""
- if revents & select.POLLIN:
+ if revents & POLLIN:
s += "[POLLIN]"
- if revents & select.POLLOUT:
+ if revents & POLLOUT:
s += "[POLLOUT]"
- if revents & select.POLLERR:
+ if revents & POLLERR:
s += "[POLLERR]"
- if revents & select.POLLHUP:
+ if revents & POLLHUP:
s += "[POLLHUP]"
- if revents & select.POLLNVAL:
+ if revents & POLLNVAL:
s += "[POLLNVAL]"
vlog.dbg("%s on fd %d" % (s, fd))
diff --git a/python/ovs/socket_util.py b/python/ovs/socket_util.py
index dd45fe4b..1fc80fd3 100644
--- a/python/ovs/socket_util.py
+++ b/python/ovs/socket_util.py
@@ -77,7 +77,7 @@ def make_unix_socket(style, nonblock, bind_path, connect_path):
def check_connection_completion(sock):
p = ovs.poller.SelectPoll()
- p.register(sock, select.POLLOUT)
+ p.register(sock, ovs.poller.POLLOUT)
if len(p.poll(0)) == 1:
return get_socket_error(sock)
else:
diff --git a/python/ovs/stream.py b/python/ovs/stream.py
index dad68483..c4d243d0 100644
--- a/python/ovs/stream.py
+++ b/python/ovs/stream.py
@@ -14,7 +14,6 @@
import errno
import os
-import select
import socket
import ovs.poller
@@ -236,9 +235,9 @@ class Stream(object):
if self.state == Stream.__S_CONNECTING:
wait = Stream.W_CONNECT
if wait == Stream.W_RECV:
- poller.fd_wait(self.socket, select.POLLIN)
+ poller.fd_wait(self.socket, ovs.poller.POLLIN)
else:
- poller.fd_wait(self.socket, select.POLLOUT)
+ poller.fd_wait(self.socket, ovs.poller.POLLOUT)
def connect_wait(self, poller):
self.wait(poller, Stream.W_CONNECT)
@@ -324,7 +323,7 @@ class PassiveStream(object):
return error, None
def wait(self, poller):
- poller.fd_wait(self.socket, select.POLLIN)
+ poller.fd_wait(self.socket, ovs.poller.POLLIN)
def __del__(self):
# Don't delete the file: we might have forked.