android can't into multiprocessing

This commit is contained in:
ed 2019-06-13 01:07:45 +00:00
parent f5e07fcfbc
commit 4ca63bae7a

View file

@ -7,6 +7,7 @@ import sys
import time import time
import socket import socket
import threading import threading
import multiprocessing as mp
from datetime import datetime, timedelta from datetime import datetime, timedelta
import calendar import calendar
@ -75,28 +76,35 @@ class TcpSrv(object):
def check_mp_support(self): def check_mp_support(self):
vmin = sys.version_info[1] vmin = sys.version_info[1]
if WINDOWS: if WINDOWS:
msg = "need python 3.3 or newer for multiprocessing;"
if PY2: if PY2:
# py2 pickler doesn't support winsock # py2 pickler doesn't support winsock
return False return msg
elif vmin < 3: elif vmin < 3:
return False return msg
else: else:
msg = "need python 2.7 or 3.3+ for multiprocessing;"
if not PY2 and vmin < 3: if not PY2 and vmin < 3:
return False return msg
return True try:
x = mp.Queue(1)
x.put(["foo", "bar"])
if x.get()[0] != "foo":
raise Exception()
except:
return "multiprocessing is not supported on your platform;"
return ""
def create_server(self): def create_server(self):
if self.args.j == 0: if self.args.j == 0:
self.log("root", "multiprocessing disabled by argument -j 0;") self.log("root", "multiprocessing disabled by argument -j 0;")
return self.create_threading_server() return self.create_threading_server()
if not self.check_mp_support(): err = self.check_mp_support()
if WINDOWS: if err:
self.log("root", "need python 3.3 or newer for multiprocessing;") self.log("root", err)
else:
self.log("root", "need python 2.7 or 3.3+ for multiprocessing;")
return self.create_threading_server() return self.create_threading_server()
return self.create_multiprocessing_server() return self.create_multiprocessing_server()