mirror of
https://github.com/KLayout/klayout.git
synced 2026-08-22 05:57:41 +02:00
ThreadPool.imap stopped working in py 3.7.1
This commit is contained in:
@@ -59,13 +59,13 @@ from setuptools.extension import Extension, Library
|
|||||||
import glob
|
import glob
|
||||||
import os
|
import os
|
||||||
import platform
|
import platform
|
||||||
import distutils.sysconfig as sysconfig
|
|
||||||
from distutils.errors import CompileError
|
from distutils.errors import CompileError
|
||||||
import distutils.command.build_ext
|
import distutils.command.build_ext
|
||||||
import setuptools.command.build_ext
|
import setuptools.command.build_ext
|
||||||
import multiprocessing
|
import multiprocessing
|
||||||
N_cores = multiprocessing.cpu_count()
|
N_cores = multiprocessing.cpu_count()
|
||||||
|
|
||||||
|
|
||||||
# monkey-patch for parallel compilation
|
# monkey-patch for parallel compilation
|
||||||
# from https://stackoverflow.com/questions/11013851/speeding-up-build-process-with-distutils
|
# from https://stackoverflow.com/questions/11013851/speeding-up-build-process-with-distutils
|
||||||
def parallelCCompile(self, sources, output_dir=None, macros=None, include_dirs=None, debug=0, extra_preargs=None, extra_postargs=None, depends=None):
|
def parallelCCompile(self, sources, output_dir=None, macros=None, include_dirs=None, debug=0, extra_preargs=None, extra_postargs=None, depends=None):
|
||||||
@@ -88,6 +88,7 @@ def parallelCCompile(self, sources, output_dir=None, macros=None, include_dirs=N
|
|||||||
n_tries = 2
|
n_tries = 2
|
||||||
while n_tries > 0:
|
while n_tries > 0:
|
||||||
try:
|
try:
|
||||||
|
print("Building", obj)
|
||||||
self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
|
self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
|
||||||
except CompileError:
|
except CompileError:
|
||||||
n_tries -= 1
|
n_tries -= 1
|
||||||
@@ -95,7 +96,7 @@ def parallelCCompile(self, sources, output_dir=None, macros=None, include_dirs=N
|
|||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
# convert to list, imap is evaluated on-demand
|
# convert to list, imap is evaluated on-demand
|
||||||
list(multiprocessing.pool.ThreadPool(N).imap(_single_compile, objects))
|
list(multiprocessing.pool.ThreadPool(N).map(_single_compile, objects))
|
||||||
return objects
|
return objects
|
||||||
|
|
||||||
|
|
||||||
@@ -155,10 +156,10 @@ distutils.ccompiler.CCompiler.library_filename = patched_library_filename
|
|||||||
# for this ... We're patching this back now.
|
# for this ... We're patching this back now.
|
||||||
|
|
||||||
def always_link_shared_object(
|
def always_link_shared_object(
|
||||||
self, objects, output_libname, output_dir=None, libraries=None,
|
self, objects, output_libname, output_dir=None, libraries=None,
|
||||||
library_dirs=None, runtime_library_dirs=None, export_symbols=None,
|
library_dirs=None, runtime_library_dirs=None, export_symbols=None,
|
||||||
debug=0, extra_preargs=None, extra_postargs=None, build_temp=None,
|
debug=0, extra_preargs=None, extra_postargs=None, build_temp=None,
|
||||||
target_lang=None):
|
target_lang=None):
|
||||||
self.link(
|
self.link(
|
||||||
self.SHARED_LIBRARY, objects, output_libname,
|
self.SHARED_LIBRARY, objects, output_libname,
|
||||||
output_dir, libraries, library_dirs, runtime_library_dirs,
|
output_dir, libraries, library_dirs, runtime_library_dirs,
|
||||||
@@ -166,6 +167,7 @@ def always_link_shared_object(
|
|||||||
build_temp, target_lang
|
build_temp, target_lang
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
setuptools.command.build_ext.libtype = "shared"
|
setuptools.command.build_ext.libtype = "shared"
|
||||||
setuptools.command.build_ext.link_shared_object = always_link_shared_object
|
setuptools.command.build_ext.link_shared_object = always_link_shared_object
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user