Skip to content

Commit

Permalink
[lit] Fix handling of per test timeout when the installed psutil version
Browse files Browse the repository at this point in the history
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
  • Loading branch information
delcypher committed Jan 13, 2016
1 parent 92da4c5 commit 5ef672d
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion utils/lit/lit/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down

0 comments on commit 5ef672d

Please sign in to comment.