Python 3 asyncio selectors fix (#344)
This commit is contained in:
parent
425a83faec
commit
8ece8cc14d
3 changed files with 32 additions and 3 deletions
|
@ -161,7 +161,7 @@ class Python3Recipe(TargetPythonRecipe):
|
|||
def prebuild_arch(self, arch):
|
||||
super(Python3Recipe, self).prebuild_arch(arch)
|
||||
if self.version == '3.6':
|
||||
Python3Recipe.patches = ['patch_python3.6.patch']
|
||||
Python3Recipe.patches = ['patch_python3.6.patch', 'selectors.patch']
|
||||
build_dir = self.get_build_dir(arch.arch)
|
||||
shprint(sh.ln, '-sf',
|
||||
realpath(join(build_dir, 'Lib/site-packages/README.txt')),
|
||||
|
|
15
recipes/python3crystax/selectors.patch
Normal file
15
recipes/python3crystax/selectors.patch
Normal file
|
@ -0,0 +1,15 @@
|
|||
--- a/Lib/selectors.py 2018-06-27 00:39:50.000000000 +0100
|
||||
+++ b/Lib/selectors.py 2018-10-28 17:39:46.027757518 +0100
|
||||
@@ -599,9 +599,9 @@
|
||||
# Choose the best implementation, roughly:
|
||||
# epoll|kqueue|devpoll > poll > select.
|
||||
# select() also can't accept a FD > FD_SETSIZE (usually around 1024)
|
||||
-if 'KqueueSelector' in globals():
|
||||
- DefaultSelector = KqueueSelector
|
||||
-elif 'EpollSelector' in globals():
|
||||
+#if 'KqueueSelector' in globals():
|
||||
+# DefaultSelector = KqueueSelector
|
||||
+if 'EpollSelector' in globals():
|
||||
DefaultSelector = EpollSelector
|
||||
elif 'DevpollSelector' in globals():
|
||||
DefaultSelector = DevpollSelector
|
|
@ -1,10 +1,24 @@
|
|||
import sys
|
||||
from twisted.internet import asyncioreactor
|
||||
if 'twisted.internet.reactor' not in sys.modules:
|
||||
asyncioreactor.install()
|
||||
else:
|
||||
from twisted.internet import reactor
|
||||
if not isinstance(reactor, asyncioreactor.AsyncioSelectorReactor) and getattr(sys, 'frozen', False):
|
||||
# pyinstaller hooks install the default reactor before
|
||||
# any of our code runs, see kivy for similar problem:
|
||||
# https://github.com/kivy/kivy/issues/4182
|
||||
del sys.modules['twisted.internet.reactor']
|
||||
asyncioreactor.install()
|
||||
from twisted.internet import reactor
|
||||
|
||||
import keyring.backend
|
||||
import platform
|
||||
import ssl
|
||||
from jnius import autoclass
|
||||
|
||||
# Fixes / patches / overrides
|
||||
# platform.platform() in libc_ver: IOError: [Errno 21] Is a directory
|
||||
from jnius import autoclass
|
||||
lbrynet_utils = autoclass('io.lbry.browser.Utils')
|
||||
service = autoclass('io.lbry.browser.LbrynetService').serviceInstance
|
||||
platform.platform = lambda: 'Android %s (API %s)' % (lbrynet_utils.getAndroidRelease(), lbrynet_utils.getAndroidSdk())
|
||||
|
@ -76,7 +90,7 @@ keyring.set_keyring(LbryAndroidKeyring())
|
|||
|
||||
import logging.handlers
|
||||
from lbrynet.core import log_support
|
||||
from twisted.internet import defer, reactor
|
||||
from twisted.internet import reactor
|
||||
|
||||
from lbrynet import analytics
|
||||
from lbrynet import conf
|
||||
|
|
Loading…
Reference in a new issue