summaryrefslogtreecommitdiff
path: root/lib/ansible/executor/action_write_locks.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/executor/action_write_locks.py')
-rw-r--r--lib/ansible/executor/action_write_locks.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/ansible/executor/action_write_locks.py b/lib/ansible/executor/action_write_locks.py
index 413d56d9d7..124904391f 100644
--- a/lib/ansible/executor/action_write_locks.py
+++ b/lib/ansible/executor/action_write_locks.py
@@ -20,6 +20,7 @@ from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
from multiprocessing import Lock
+from multiprocessing.util import register_after_fork
from ansible.module_utils.facts import Facts
if 'action_write_locks' not in globals():
@@ -39,5 +40,7 @@ if 'action_write_locks' not in globals():
mods = set(p['name'] for p in Facts.PKG_MGRS)
mods.update(('copy', 'file', 'setup', 'slurp', 'stat'))
for mod_name in mods:
- action_write_locks[mod_name] = Lock()
+ l = Lock()
+ action_write_locks[mod_name] = l
+ register_after_fork(l, l.release)