diff options
Diffstat (limited to 'meta/lib/oe/utils.py')
| -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: |
