/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
contrib/python/Twisted/py2/twisted/internet/default.py
56 строк
2 KB
Anton Myagkov
Update ydb version to 24.4 (#4579)
07 фев 2026, 11:59
Не верифицирован
07 фев 2026, 11:59
2c21cae
Код
Авторство
О чём код?
# -*- test-case-name: twisted.internet.test.test_default -*- # Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. """ The most suitable default reactor for the current platform. Depending on a specific application's needs, some other reactor may in fact be better. """ from __future__ import division, absolute_import __all__ = ["install"] from twisted.python.runtime import platform def _getInstallFunction(platform): """ Return a function to install the reactor most suited for the given platform. @param platform: The platform for which to select a reactor. @type platform: L{twisted.python.runtime.Platform} @return: A zero-argument callable which will install the selected reactor. """ # Linux: epoll(7) is the default, since it scales well. # # macOS: poll(2) is not exposed by Python because it doesn't support all # file descriptors (in particular, lack of PTY support is a problem) -- # see <http://bugs.python.org/issue5154>. kqueue has the same restrictions # as poll(2) as far PTY support goes. # # Windows: IOCP should eventually be default, but still has some serious # bugs, e.g. <http://twistedmatrix.com/trac/ticket/4667>. # # We therefore choose epoll(7) on Linux, poll(2) on other non-macOS POSIX # platforms, and select(2) everywhere else. try: if platform.isLinux(): try: from twisted.internet.epollreactor import install except ImportError: from twisted.internet.pollreactor import install elif platform.getType() == 'posix' and not platform.isMacOSX(): from twisted.internet.pollreactor import install else: from twisted.internet.selectreactor import install except ImportError: from twisted.internet.selectreactor import install return install install = _getInstallFunction(platform)