diff options
Diffstat (limited to 'meta/lib')
-rw-r--r-- | meta/lib/oe/utils.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py index 0c1d48a209..3a496090f3 100644 --- a/meta/lib/oe/utils.py +++ b/meta/lib/oe/utils.py | |||
@@ -307,6 +307,10 @@ def multiprocess_launch(target, items, d, extraargs=None): | |||
307 | p.start() | 307 | p.start() |
308 | launched.append(p) | 308 | launched.append(p) |
309 | for q in launched: | 309 | for q in launched: |
310 | # Have to manually call update() to avoid deadlocks. The pipe can be full and | ||
311 | # transfer stalled until we try and read the results object but the subprocess won't exit | ||
312 | # as it still has data to write (https://bugs.python.org/issue8426) | ||
313 | q.update() | ||
310 | # The finished processes are joined when calling is_alive() | 314 | # The finished processes are joined when calling is_alive() |
311 | if not q.is_alive(): | 315 | if not q.is_alive(): |
312 | if q.exception: | 316 | if q.exception: |