diff options
Diffstat (limited to 'Lib/test/test_support.py')
| -rw-r--r-- | Lib/test/test_support.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py index 8e31549..6532c79 100644 --- a/Lib/test/test_support.py +++ b/Lib/test/test_support.py @@ -475,3 +475,24 @@ def threading_cleanup(num_active, num_limbo): while len(threading._limbo) != num_limbo and count < _MAX_COUNT: count += 1 time.sleep(0.1) + +def reap_children(): + """Use this function at the end of test_main() whenever sub-processes + are started. This will help ensure that no extra children (zombies) + stick around to hog resources and create problems when looking + for refleaks. + """ + + # Reap all our dead child processes so we don't leave zombies around. + # These hog resources and might be causing some of the buildbots to die. + import os + if hasattr(os, 'waitpid'): + any_process = -1 + while True: + try: + # This will raise an exception on Windows. That's ok. + pid, status = os.waitpid(any_process, os.WNOHANG) + if pid == 0: + break + except: + break |
