Commit ad8c2758 by Michael DeHaan

Revert "While the previous work on the foon class can't be quite recycled, it's…

Revert "While the previous work on the foon class can't be quite recycled, it's still a nice abstraction."

This reverts commit caab52ae.
parent caab52ae
......@@ -63,6 +63,7 @@ PROCESS_LOCKFILE = tempfile.TemporaryFile()
from foon import Foon
FOON = Foon()
################################################
......@@ -1057,10 +1058,11 @@ class Runner(object):
# *****************************************************
def _parallel_exec(self, params):
def _parallel_exec(self, hosts):
''' handles mulitprocessing when more than 1 fork is required '''
return self.foon.map(_executor_hook, params)
FOON.set_size(self.forks)
return FOON.map(_executor_hook, hosts)
# *****************************************************
......@@ -1112,8 +1114,6 @@ class Runner(object):
if self.forks == 0 or self.forks > len(hosts):
self.forks = len(hosts)
self.foon = Foon(self.forks)
if p and getattr(p, 'BYPASS_HOST_LOOP', None):
# Expose the current hostgroup to the bypassing plugins
......
......@@ -99,18 +99,30 @@ class MyPool(mpool.Pool):
class Foon(object):
def __init__(self, size):
self.pool = self._make_pool(size)
def __init__(self):
self.set_size(0)
def _make_pool(self, processes=None, initializer=None, initargs=()):
def make_pool(self, processes=None, initializer=None, initargs=()):
'''
Returns a process pool object
'''
return MyPool(processes, initializer, initargs)
def set_size(self, size):
global OLD_SIZE
global POOL
if size > OLD_SIZE or POOL is None:
OLD_SIZE = size
POOL = self.make_pool()
def map(self, function, data_list):
global POOL
try:
return self.pool.map(function, data_list)
return POOL.map(function, data_list)
except KeyboardInterrupt:
print "KEYBOARD INTERRUPT!"
sys.exit(1)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment