diff --git a/mercurial/pycompat.py b/mercurial/pycompat.py --- a/mercurial/pycompat.py +++ b/mercurial/pycompat.py @@ -17,6 +17,7 @@ ispy3 = (sys.version_info[0] >= 3) ispypy = (r'__pypy__' in sys.builtin_module_names) +isjython = sys.platform.startswith(r'java') if not ispy3: import cookielib diff --git a/mercurial/selectors2.py b/mercurial/selectors2.py --- a/mercurial/selectors2.py +++ b/mercurial/selectors2.py @@ -29,12 +29,13 @@ import collections import errno import math -import platform import select import socket import sys import time +from mercurial import pycompat + namedtuple = collections.namedtuple Mapping = collections.Mapping @@ -64,7 +65,6 @@ SelectorKey = namedtuple('SelectorKey', ['fileobj', 'fd', 'events', 'data']) - class _SelectorMapping(Mapping): """ Mapping of file objects to selector keys """ @@ -288,7 +288,7 @@ __all__.append('SelectSelector') # Jython has a different implementation of .fileno() for socket objects. - if platform.system() == 'Java': + if pycompat.isjython: class _JythonSelectorMapping(object): """ This is an implementation of _SelectorMapping that is built for use specifically with Jython, which does not provide a hashable @@ -727,7 +727,7 @@ by eventlet, greenlet, and preserve proper behavior. """ global _DEFAULT_SELECTOR if _DEFAULT_SELECTOR is None: - if platform.system() == 'Java': # Platform-specific: Jython + if pycompat.isjython: _DEFAULT_SELECTOR = JythonSelectSelector elif _can_allocate('kqueue'): _DEFAULT_SELECTOR = KqueueSelector