[pypy-svn] pypy default: A little cleanup to epoll, consolidate the "is closed" logic and remove self.space, I don't like it.
alex_gaynor
commits-noreply at bitbucket.org
Sat Feb 26 05:53:30 CET 2011
Author: Alex Gaynor <alex.gaynor at gmail.com>
Branch:
Changeset: r42306:902b78330a62
Date: 2011-02-25 23:53 -0500
http://bitbucket.org/pypy/pypy/changeset/902b78330a62/
Log: A little cleanup to epoll, consolidate the "is closed" logic and
remove self.space, I don't like it.
diff --git a/pypy/module/select/interp_epoll.py b/pypy/module/select/interp_epoll.py
--- a/pypy/module/select/interp_epoll.py
+++ b/pypy/module/select/interp_epoll.py
@@ -55,9 +55,9 @@
compilation_info=eci,
)
+
class W_Epoll(Wrappable):
def __init__(self, space, epfd):
- self.space = space
self.epfd = epfd
@unwrap_spec(sizehint=int)
@@ -81,19 +81,22 @@
def __del__(self):
self.close()
- def check_closed(self):
- if self.epfd < 0:
- raise OperationError(self.space.w_ValueError,
- self.space.wrap("I/O operation on closed epoll fd")
+ def check_closed(self, space):
+ if self.get_closed():
+ raise OperationError(space.w_ValueError,
+ space.wrap("I/O operation on closed epoll fd")
)
+ def get_closed(self):
+ return self.epfd < 0
+
def close(self):
- if not self.epfd < 0:
+ if not self.get_closed():
socketclose(self.epfd)
self.epfd = -1
- def epoll_ctl(self, ctl, w_fd, eventmask, ignore_ebadf=False):
- fd = self.space.c_filedescriptor_w(w_fd)
+ def epoll_ctl(self, space, ctl, w_fd, eventmask, ignore_ebadf=False):
+ fd = space.c_filedescriptor_w(w_fd)
with lltype.scoped_alloc(epoll_event) as ev:
ev.c_events = rffi.cast(rffi.UINT, eventmask)
rffi.setintfield(ev.c_data, 'c_fd', fd)
@@ -102,36 +105,36 @@
if ignore_ebadf and get_errno() == errno.EBADF:
result = 0
if result < 0:
- raise exception_from_errno(self.space, self.space.w_IOError)
+ raise exception_from_errno(space, space.w_IOError)
def descr_get_closed(self, space):
- return space.wrap(self.epfd < 0)
+ return space.wrap(self.get_closed())
def descr_fileno(self, space):
- self.check_closed()
+ self.check_closed(space)
return space.wrap(self.epfd)
def descr_close(self, space):
- self.check_closed()
+ self.check_closed(space)
self.close()
@unwrap_spec(eventmask=int)
def descr_register(self, space, w_fd, eventmask=-1):
- self.check_closed()
- self.epoll_ctl(EPOLL_CTL_ADD, w_fd, eventmask)
+ self.check_closed(space)
+ self.epoll_ctl(space, EPOLL_CTL_ADD, w_fd, eventmask)
def descr_unregister(self, space, w_fd):
- self.check_closed()
- self.epoll_ctl(EPOLL_CTL_DEL, w_fd, 0, ignore_ebadf=True)
+ self.check_closed(space)
+ self.epoll_ctl(space, EPOLL_CTL_DEL, w_fd, 0, ignore_ebadf=True)
@unwrap_spec(eventmask=int)
def descr_modify(self, space, w_fd, eventmask=-1):
- self.check_closed()
- self.epoll_ctl(EPOLL_CTL_MOD, w_fd, eventmask)
+ self.check_closed(space)
+ self.epoll_ctl(space, EPOLL_CTL_MOD, w_fd, eventmask)
@unwrap_spec(timeout=float, maxevents=int)
def descr_poll(self, space, timeout=-1.0, maxevents=-1):
- self.check_closed()
+ self.check_closed(space)
if timeout < 0:
timeout = -1.0
else:
More information about the Pypy-commit
mailing list