From 5ef672de8d5bcad2936fa0a77d5e27aab40654e7 Mon Sep 17 00:00:00 2001 From: Dan Liew Date: Wed, 13 Jan 2016 16:43:49 +0000 Subject: [PATCH] [lit] Fix handling of per test timeout when the installed psutil version is < ``2.0``. Older versions of psutil (e.g. ``1.2.1`` which is the version shipped with Ubuntu 14.04) use a different API for retrieving the child processes. To handle this try the new API first and if that fails try the old API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257616 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/lit/lit/util.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/utils/lit/lit/util.py b/utils/lit/lit/util.py index a6e8d52c075..40a57716869 100644 --- a/utils/lit/lit/util.py +++ b/utils/lit/lit/util.py @@ -267,7 +267,14 @@ def killProcessAndChildren(pid): import psutil try: psutilProc = psutil.Process(pid) - for child in psutilProc.children(recursive=True): + # Handle the different psutil API versions + try: + # psutil >= 2.x + children_iterator = psutilProc.children(recursive=True) + except AttributeError: + # psutil 1.x + children_iterator = psutilProc.get_children(recursive=True) + for child in children_iterator: try: child.kill() except psutil.NoSuchProcess: -- 2.34.1