FlatCAMPool.py 735 B

1234567891011121314151617181920212223242526272829303132
  1. from PyQt5 import QtCore
  2. from multiprocessing import Pool
  3. import dill
  4. def run_dill_encoded(what):
  5. fun, args = dill.loads(what)
  6. print("load", fun, args)
  7. return fun(*args)
  8. def apply_async(pool, fun, args):
  9. print("...", fun, args)
  10. print("dumps", dill.dumps((fun, args)))
  11. return pool.map_async(run_dill_encoded, (dill.dumps((fun, args)),))
  12. def func1():
  13. print("func")
  14. class WorkerPool(QtCore.QObject):
  15. def __init__(self):
  16. super(WorkerPool, self).__init__()
  17. self.pool = Pool(2)
  18. def add_task(self, task):
  19. print("adding task", task)
  20. # task['fcn'](*task['params'])
  21. # print self.pool.map(task['fcn'], task['params'])
  22. apply_async(self.pool, func1, ())