私は私の質問を手短にします。「num_jobs」環境オプションを設定しています。ご存じかもしれませんが、SCons をマルチスレッド モードで実行します (CPU 数によって異なります)。私のカスタムビルダーでは、出力を標準出力に出力するサブプロセスを介して外部実行可能ファイルを呼び出します。
問題は、その出力を stdout に同期する方法です。4 つの CPU があり、ビルド中に情報を台無しにしてしまったため、出力を同期する必要があります。
ありがとう。
私は私の質問を手短にします。「num_jobs」環境オプションを設定しています。ご存じかもしれませんが、SCons をマルチスレッド モードで実行します (CPU 数によって異なります)。私のカスタムビルダーでは、出力を標準出力に出力するサブプロセスを介して外部実行可能ファイルを呼び出します。
問題は、その出力を stdout に同期する方法です。4 つの CPU があり、ビルド中に情報を台無しにしてしまったため、出力を同期する必要があります。
ありがとう。
使用できますSideEffect
。
def MyFunc(env, param):
run_ret = env.Command(... external command using param ...)
# ensure that no unit tests are run in parallel
env.SideEffect('#/GLOABL_LOCK', run_ret)
次にAddMethod
MyFunc を環境に追加します。は、 へのSideEffect
異なるコールCommand
が同時に発生しないようにします。