Skip to content

Commit

Permalink
Merge pull request #28 from isi-mfurer/hotfix-0.2.5.1
Browse files Browse the repository at this point in the history
Hotfix 0.2.5.1
  • Loading branch information
isi-mfurer authored Jan 17, 2017
2 parents 81a1163 + c13ee77 commit bae4d0b
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 14 deletions.
29 changes: 16 additions & 13 deletions pike/transport.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@

_reraised_exceptions = (KeyboardInterrupt, SystemExit)


class Transport(object):
"""
Transport is responsible for managing the underlying socket, registering
Expand Down Expand Up @@ -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)
Expand All @@ -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)
Expand All @@ -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)

Expand All @@ -441,5 +443,6 @@ def poll(self):
else:
poller = SelectPoller()


def loop(timeout=None, count=None):
poller.loop(timeout, count)
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -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='[email protected]',
Expand Down

0 comments on commit bae4d0b

Please sign in to comment.