2

私は私の質問を手短にします。「num_jobs」環境オプションを設定しています。ご存じかもしれませんが、SCons をマルチスレッド モードで実行します (CPU 数によって異なります)。私のカスタムビルダーでは、出力を標準出力に出力するサブプロセスを介して外部実行可能ファイルを呼び出します。

問題は、その出力を stdout に同期する方法です。4 つの CPU があり、ビルド中に情報を台無しにしてしまったため、出力を同期する必要があります。

ありがとう。

4

1 に答える 1

0

使用できます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)

次にAddMethodMyFunc を環境に追加します。は、 へのSideEffect異なるコールCommandが同時に発生しないようにします。

于 2013-08-01T12:29:17.567 に答える