summaryrefslogtreecommitdiffstats
path: root/tools/releasetools/common.py
diff options
context:
space:
mode:
authorYing Wang <wangying@google.com>2011-03-15 17:49:04 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-03-15 17:49:05 -0700
commit080ed92e77fc7c24ca3bac1a1dc06057390bfdb8 (patch)
treeef2c1c32fa388b8c20d2aeecb6efbb47587f98b8 /tools/releasetools/common.py
parentbe188cafd21c7356cc33ae042661b682d0536e8b (diff)
parentf9bbfb577233bce7bb9a0ab7ec842074ce59e6e7 (diff)
downloadbuild-080ed92e77fc7c24ca3bac1a1dc06057390bfdb8.zip
build-080ed92e77fc7c24ca3bac1a1dc06057390bfdb8.tar.gz
build-080ed92e77fc7c24ca3bac1a1dc06057390bfdb8.tar.bz2
Merge "Close inherited PIPE before doing work" into gingerbread
Diffstat (limited to 'tools/releasetools/common.py')
-rw-r--r--tools/releasetools/common.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index 74192f7..52e7aed 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -18,6 +18,7 @@ import getopt
import getpass
import imp
import os
+import platform
import re
import sha
import shutil
@@ -57,6 +58,22 @@ def Run(args, **kwargs):
return subprocess.Popen(args, **kwargs)
+def CloseInheritedPipes():
+ """ Gmake in MAC OS has file descriptor (PIPE) leak. We close those fds
+ before doing other work."""
+ if platform.system() != "Darwin":
+ return
+ for d in range(3, 1025):
+ try:
+ stat = os.fstat(d)
+ if stat is not None:
+ pipebit = stat[0] & 0x1000
+ if pipebit != 0:
+ os.close(d)
+ except OSError:
+ pass
+
+
def LoadInfoDict(zip):
"""Read and parse the META/misc_info.txt key/value pairs from the
input target files and return a dict."""