2013-07-22 5 views
1

나는 내 질문에 짧을거야. 'num_jobs'환경 옵션을 설정하고 있습니다. 아시다시피 SCons는 멀티 스레딩 모드에서 실행됩니다 (CPU 수에 따라 다름). 내 사용자 정의 빌더에서 일부 출력을 stdout으로 인쇄하는 하위 프로세스를 통해 일부 실행 가능 파일이라고 부릅니다.SCons, 멀티 스레딩, 관리

그래서 질문 : 출력을 표준 출력과 동기화하는 방법은 무엇입니까? 나는 4 개의 CPU를 가지고 있기 때문에 출력을 동기화 할 필요가있다. 그리고 건물을 짓는 동안 나는 정보를 엉망으로 만든다.

감사합니다.

답변

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) 

다음으로 AddMethod 사용자 환경으로 MyFunc. SideEffectCommand에 대한 다른 호출이 동시에 발생하지 않도록합니다.