Fix compilation of libev C extension for py3k

This commit is contained in:
Tyler Hobbs
2014-05-20 14:52:34 -05:00
parent 0b588ba1d2
commit dc9b69ef35
3 changed files with 12 additions and 11 deletions

View File

@@ -220,8 +220,8 @@ class LibevConnection(Connection):
self._socket.setsockopt(*args)
with self._loop_lock:
self._read_watcher = libev.IO(self._socket._sock, libev.EV_READ, self._loop, self.handle_read)
self._write_watcher = libev.IO(self._socket._sock, libev.EV_WRITE, self._loop, self.handle_write)
self._read_watcher = libev.IO(self._socket.fileno(), libev.EV_READ, self._loop, self.handle_read)
self._write_watcher = libev.IO(self._socket.fileno(), libev.EV_WRITE, self._loop, self.handle_write)
self._send_options_message()

View File

@@ -161,7 +161,8 @@ IO_init(libevwrapper_IO *self, PyObject *args, PyObject *kwds) {
Py_XDECREF(loop);
return -1;
}
ev_io_init(&self->io, io_callback, fd, io_flags);
struct ev_io *io = &(self->io);
ev_io_init(io, io_callback, fd, io_flags);
self->io.data = self;
return 0;
}
@@ -180,12 +181,14 @@ IO_stop(libevwrapper_IO *self, PyObject *args) {
static PyObject*
IO_is_active(libevwrapper_IO *self, PyObject *args) {
return PyBool_FromLong(ev_is_active(&self->io));
struct ev_io *io = &(self->io);
return PyBool_FromLong(ev_is_active(io));
}
static PyObject*
IO_is_pending(libevwrapper_IO *self, PyObject *args) {
return PyBool_FromLong(ev_is_pending(&self->io));
struct ev_io *io = &(self->io);
return PyBool_FromLong(ev_is_pending(io));
}
static PyMethodDef IO_methods[] = {
@@ -264,7 +267,8 @@ Async_init(libevwrapper_Async *self, PyObject *args, PyObject *kwds) {
} else {
return -1;
}
ev_async_init(&self->async, async_callback);
struct ev_async *async = &(self->async);
ev_async_init(async, async_callback);
return 0;
};
@@ -379,7 +383,8 @@ Prepare_init(libevwrapper_Prepare *self, PyObject *args, PyObject *kwds) {
Py_INCREF(callback);
self->callback = callback;
}
ev_prepare_init(&self->prepare, prepare_callback);
struct ev_prepare *prepare = &(self->prepare);
ev_prepare_init(prepare, prepare_callback);
self->prepare.data = self;
return 0;
}

View File

@@ -222,10 +222,6 @@ elif "--no-libev" in sys.argv:
sys.argv = [a for a in sys.argv if a != "--no-libev"]
extensions.remove(libev_ext)
# For now, don't try to compile the libev extension for Python 3.
# Once the extension has been updated, this can be removed.
if sys.version_info >= (3, 0) and libev_ext in extensions:
extensions.remove(libev_ext)
platform_unsupported_msg = \
"""