diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2012-11-03 15:01:14 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2012-11-05 21:10:06 +0900 |
commit | 6e14f983bce3ae4a36eb95fbd62d091b2051214f (patch) | |
tree | cb97a321ca52a20bb9c9f2eb478e29ec103462f8 | |
parent | 5ccf13809c61f6a2582e94ff3b210fb376063007 (diff) |
don't use select.POLL* constants
MacOS doesn't have POLL* constants (poll isn't supported by all OSes,
I guess).
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r-- | ryu/contrib/ovs/poller.py | 33 | ||||
-rw-r--r-- | ryu/contrib/ovs/socket_util.py | 2 | ||||
-rw-r--r-- | ryu/contrib/ovs/stream.py | 7 |
3 files changed, 23 insertions, 19 deletions
diff --git a/ryu/contrib/ovs/poller.py b/ryu/contrib/ovs/poller.py index c04c9b36..7d15f3ed 100644 --- a/ryu/contrib/ovs/poller.py +++ b/ryu/contrib/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/ryu/contrib/ovs/socket_util.py b/ryu/contrib/ovs/socket_util.py index dd45fe4b..1fc80fd3 100644 --- a/ryu/contrib/ovs/socket_util.py +++ b/ryu/contrib/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/ryu/contrib/ovs/stream.py b/ryu/contrib/ovs/stream.py index dad68483..c4d243d0 100644 --- a/ryu/contrib/ovs/stream.py +++ b/ryu/contrib/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. |