Python バージョン: 2.6.7 18 回実行される for ループ内に次の subprocess.call がありますが、プロセスは 19 回目のループで常にハングします。
if config.get_bool_option(NAME, 'exclude_generated_code', True):
for conf in desc.iter_configs():
for gen in desc.iter_generators(conf):
generator.initialize_generated_path(gen, desc)
for genpath in gen.generated_path:
os.rename(cov_file, cov_file+'.temp')
exclude = ['lcov']
exclude += ['-r', cov_file+'.temp', '"'+genpath+'/*"']
exclude += ['-o', cov_file]
if verbose: Tracer.log.info("Running "+ ' '.join(exclude))
try:
subprocess.call(' '.join(exclude), stdout=out, stderr=out, shell=True)
except subprocess.CalledProcessError, e:
if verbose: Tracer.log.info("TESTING: Got Exception \n")
コンソール出力は次のようになります。
Running lcov -r /remote/XXXXXX/coverage.19.temp "/remote/XXXXXX/xml/2009a/generated/*" -o /remote/XXXXX/gcov/coverage.19
私はPythonスクリプトにあまり詳しくないので、ここで何か間違ったことをしているのではないかと思いました...どこかでデッドロックが発生したと思われます..
これらの問題にstdout, stderr = process.communicate()
対処しますか?
どの場合に subprocess.call がハングするかについての専門家の回答はありますか? どうもありがとう