|
@@ -6,15 +6,21 @@ from link_and_load import link_and_load
|
|
|
import random
|
|
|
import multiprocessing
|
|
|
import glob
|
|
|
+import os
|
|
|
|
|
|
def do_compile_wrapper(args):
|
|
|
address, taskname, filename = args
|
|
|
do_compile(address, filename, str(random.random()), filename, "PO", ["--debug"])
|
|
|
|
|
|
def main(address, taskname, files):
|
|
|
- p = multiprocessing.Pool(multiprocessing.cpu_count() * 2)
|
|
|
new_files = to_recompile(address, files)
|
|
|
- p.map(do_compile_wrapper, [[address, taskname, f] for f in new_files])
|
|
|
+ if os.name == "posix":
|
|
|
+ # At least linux decently implements forking, so use as many cores as possible
|
|
|
+ p = multiprocessing.Pool(multiprocessing.cpu_count() * 2)
|
|
|
+ p.map(do_compile_wrapper, [[address, taskname, f] for f in new_files])
|
|
|
+ else:
|
|
|
+ # Other systems are less intelligent, so just do this sequentially
|
|
|
+ map(do_compile_wrapper, [[address, taskname, f] for f in new_files])
|
|
|
link_and_load(address, taskname, files)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
@@ -28,4 +34,3 @@ if __name__ == "__main__":
|
|
|
files = [a.replace("\\", "/") for a in sum([glob.glob(f) for f in sys.argv[3:]], [])]
|
|
|
|
|
|
main(address, taskname, files)
|
|
|
-
|