1
0
mirror of https://github.com/gsi-upm/senpy synced 2024-09-28 17:01:43 +00:00

Fix multiprocessing tests in python2.7

Closes #28 for python 2.

Apparently, process pools are not contexts in python 2.7.
On the other hand, in py2 you cannot pickle instance methods, so
you have to implement Pool tasks as independent functions.
This commit is contained in:
J. Fernando Sánchez 2017-04-10 20:14:40 +02:00
parent ef40bdb545
commit e582ef07d4

View File

@ -3,13 +3,15 @@ from senpy.plugins import AnalysisPlugin
import multiprocessing import multiprocessing
class AsyncPlugin(AnalysisPlugin): def _train(process_number):
def _train(self, process_number): return process_number
return process_number
class AsyncPlugin(AnalysisPlugin):
def _do_async(self, num_processes): def _do_async(self, num_processes):
with multiprocessing.Pool(processes=num_processes) as pool: pool = multiprocessing.Pool(processes=num_processes)
values = pool.map(self._train, range(num_processes)) values = pool.map(_train, range(num_processes))
return values return values
def activate(self): def activate(self):