I've been working with SnakeMQ for a few days and it's working wonderfully on Linux, but I'm getting exceptions thrown in the loop() method of a link object on Windows, with the following traceback:
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 551, in __bootstrap_inner
self.run()
File "snakemq_client.py", line 75, in run
self.my_link.loop(poll_timeout=self.poll_timeout, runtime=self.runtime)
File "C:\Users\Jason\Dropbox\Messaging\snakemq\link.py", line 410, in loop
is_event = len(self.poll(poll_timeout))
File "C:\Users\Jason\Dropbox\Messaging\snakemq\link.py", line 707, in poll
fds[:] = self.poller.poll(poll_timeout)
File "C:\Users\Jason\Dropbox\Messaging\snakemq\poll.py", line 49, in poll
fd = fd.fileno()
AttributeError: 'long' object has no attribute 'fileno'
I noticed some commits on github related to the windows poller and didn't see a
configuration for it mentioned in the docs - is there any way I can coerce the
select/poll mechanism to steer clear of file descriptor polling or is it more
complicated than that? I apologize I don't know much about the underlying
issues with Windows socket/fd polling.
I also notice this in poll.py:
if hasattr(select, "epoll"):
poll = select.epoll
else:
poll = SelectPoll
Any way I can force things to use epoll?
Any help would be greatly appreciated.
Thanks!
-Jason