mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-06-28 03:00:23 -07: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
|
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 '''
|
''' 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):
|
if self.forks == 0 or self.forks > len(hosts):
|
||||||
self.forks = len(hosts)
|
self.forks = len(hosts)
|
||||||
|
|
||||||
self.foon = Foon(self.forks)
|
|
||||||
|
|
||||||
if p and getattr(p, 'BYPASS_HOST_LOOP', None):
|
if p and getattr(p, 'BYPASS_HOST_LOOP', None):
|
||||||
|
|
||||||
# Expose the current hostgroup to the bypassing plugins
|
# Expose the current hostgroup to the bypassing plugins
|
||||||
|
|
|
@ -99,18 +99,30 @@ class MyPool(mpool.Pool):
|
||||||
|
|
||||||
class Foon(object):
|
class Foon(object):
|
||||||
|
|
||||||
def __init__(self, size):
|
def __init__(self):
|
||||||
self.pool = self._make_pool(size)
|
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
|
Returns a process pool object
|
||||||
'''
|
'''
|
||||||
return MyPool(processes, initializer, initargs)
|
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):
|
def map(self, function, data_list):
|
||||||
|
|
||||||
|
global POOL
|
||||||
try:
|
try:
|
||||||
return self.pool.map(function, data_list)
|
return POOL.map(function, data_list)
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
print "KEYBOARD INTERRUPT!"
|
print "KEYBOARD INTERRUPT!"
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue