diff --git a/eventlet/green/selectors.py b/eventlet/green/selectors.py index 9d482fe..a6d2e3c 100644 --- a/eventlet/green/selectors.py +++ b/eventlet/green/selectors.py @@ -5,6 +5,18 @@ from eventlet.green import select __patched__ = [ 'SelectSelector', +] + +# We only have green select so the options are: +# * leave it be and have selectors that block +# * try to pretend the "bad" selectors don't exist +# * replace all with SelectSelector for the price of possibly different +# performance characteristic and missing fileno() method (if someone +# uses it it'll result in a crash, we may want to implement it in the future) +# +# This module used to follow the third approach but just removing the offending +# selectors is less error prone and less confusing approach. +__deleted__ = [ 'PollSelector', 'EpollSelector', 'DevpollSelector', @@ -17,15 +29,3 @@ del patcher if sys.platform != 'win32': SelectSelector._select = staticmethod(select.select) - - -# We only have green select so the options are: -# * leave it be and have selectors that block -# * try to pretend the "bad" selectors don't exist -# * replace all with SelectSelector for the price of possibly different -# performance characteristic and missing fileno() method (if someone -# uses it it'll result in a crash, we may want to implement it in the future) -PollSelector = SelectSelector -EpollSelector = SelectSelector -DevpollSelector = SelectSelector -KqueueSelector = SelectSelector diff --git a/tests/isolated/patcher_blocking_select_methods_are_deleted.py b/tests/isolated/patcher_blocking_select_methods_are_deleted.py index 1a0341a..d2a5961 100644 --- a/tests/isolated/patcher_blocking_select_methods_are_deleted.py +++ b/tests/isolated/patcher_blocking_select_methods_are_deleted.py @@ -12,4 +12,16 @@ if __name__ == '__main__': for name in ['poll', 'epoll', 'kqueue', 'kevent']: assert not hasattr(select, name), name + import sys + + if sys.version_info >= (3, 4): + import selectors + for name in [ + 'PollSelector', + 'EpollSelector', + 'DevpollSelector', + 'KqueueSelector', + ]: + assert not hasattr(selectors, name), name + print('pass')