diff --git a/pike/transport.py b/pike/transport.py index 2332dbe1..28d6f2a9 100644 --- a/pike/transport.py +++ b/pike/transport.py @@ -42,6 +42,7 @@ _reraised_exceptions = (KeyboardInterrupt, SystemExit) + class Transport(object): """ Transport is responsible for managing the underlying socket, registering @@ -376,7 +377,7 @@ class SelectPoller(BasePoller): def poll(self): non_connected = [t._fileno for t in self.connections.values() if not t.connected] readers = self.connections.keys() - writers = non_connection + self.deferred_writers + writers = non_connected + self.deferred_writers readables, writables, _ = select.select(readers, writers, [], 0) @@ -388,22 +389,23 @@ class PollPoller(BasePoller): """ Implementation of poll, available on Linux """ - READ_EVENTS = (select.POLLIN | - select.POLLERR | - select.POLLHUP | - select.POLLNVAL | - select.POLLMSG | - select.POLLPRI) - WRITE_EVENTS = select.POLLOUT def __init__(self): super(PollPoller, self).__init__() self.p = select.poll() + self.read_events = ( + select.POLLIN | + select.POLLERR | + select.POLLHUP | + select.POLLNVAL | + select.POLLMSG | + select.POLLPRI) + self.write_events = select.POLLOUT def add_channel(self, transport): super(PollPoller, self).add_channel(transport) self.p.register( transport._fileno, - self.READ_EVENTS | self.WRITE_EVENTS) + self.read_events | self.write_events) def del_channel(self, transport): super(PollPoller, self).del_channel(transport) @@ -413,18 +415,18 @@ def defer_write(self, transport): super(PollPoller, self).defer_write(transport) self.p.modify( transport._fileno, - self.READ_EVENTS | self.WRITE_EVENTS) + self.read_events | self.write_events) def poll(self): events = self.p.poll(0) readables = [] writables = [] for fd, event in events: - if event & self.READ_EVENTS: + if event & self.read_events: readables.append(fd) - elif event & self.WRITE_EVENTS: + elif event & self.write_events: writables.append(fd) - self.p.modify(fd, self.READ_EVENTS) + self.p.modify(fd, self.read_events) self.process_readables(readables) self.process_writables(writables) @@ -441,5 +443,6 @@ def poll(self): else: poller = SelectPoller() + def loop(timeout=None, count=None): poller.loop(timeout, count) diff --git a/setup.py b/setup.py index 1b739b19..7c4cd55d 100644 --- a/setup.py +++ b/setup.py @@ -75,7 +75,7 @@ def run_setup(with_extensions): ext_modules.append(lw_krb_module) cmdclass = dict(cmdclass, build_ext=ve_build_ext) setup(name='Pike', - version='0.2.5', + version='0.2.5.1', description='Pure python SMB client', author='Brian Koropoff', author_email='Brian.Koropoff@emc.com',