|
- import sys
-
- from eventlet import patcher
- from eventlet.green import select
-
- __patched__ = [
- 'DefaultSelector',
- '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',
- 'KqueueSelector',
- ]
-
- patcher.inject('selectors', globals(), ('select', select))
-
- del patcher
-
- if sys.platform != 'win32':
- SelectSelector._select = staticmethod(select.select)
-
- DefaultSelector = SelectSelector
|