def clopure_pmap(self, *args, local_vars):
if len(args) <= 1:
raise ClopureRuntimeError("pmap takes at least 2 arguments")
seqs = [self.evaluate(arg, local_vars=local_vars) for arg in args[1:]]
p = Pool(self.procs)
s = Semaphore(self.queue_size)
input_iter = (((args[0],) + x, local_vars) for x in input_semaphore_hook(zip(*seqs), s))
return output_semaphore_hook(p.imap(self.mp_evaluate_wrapper, input_iter), s)
评论列表
文章目录