マルチスレッド プログラムでは、あるスレッドでファイルを開いて 'close on exec' ビットを設定し、別のスレッドで subprocess.Popen を呼び出す間に競合の危険性があることを痛感しました。予期しないハンドルが渡される可能性があります。 2 番目の子、このアクセスをロックで保護する必要があるように思えます (subprocess.Popen からすべてのハンドルを閉じることができることはわかっていますが、それはやり過ぎかもしれません)。
それは安全になるでしょうか?サブプロセスはすぐにシェルを実行しようとしていますが、そのような状況で Python スレッド ロックがどのように動作するかはわかりません。
PS Linuxには開くための「execで閉じる」ビットがあることは知っていますが、Linuxで実行していません。とにかく、python一時ファイル(または少なくとも2.6のもの)はその機能を使用していません。
もちろん、理想的には、pythonはその不快感自体に対処しますが、それを示唆するものは何も見つかりません.