【问题标题】:SCons, multithreading, managementSCons,多线程,管理
【发布时间】:2013-07-22 07:19:05
【问题描述】:
我的问题很简短。我正在设置“num_jobs”环境选项。您可能知道它使 SCons 在多线程模式下运行(取决于 CPU 数量)。在我的自定义构建器中,我通过子进程调用了一些外部可执行文件,该子进程将一些输出打印到标准输出。
所以问题是:如何将该输出同步到标准输出?我需要同步输出,因为我有 4 个 CPU,并且在构建过程中我弄乱了信息。
谢谢。
【问题讨论】:
标签:
python
multithreading
stdout
scons
【解决方案1】:
您可以使用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 的不同调用不会同时发生。