mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Revert "While the previous work on the foon class can't be quite recycled, it's still a nice abstraction."
This reverts commit caab52aee2
.
This commit is contained in:
parent
caab52aee2
commit
ad8c275887
2 changed files with 20 additions and 8 deletions
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue