Re: SCONS -j12, console output is disordered
Mats Wichmann <[email protected]> Sat, 23 Dec 2023 09:50:50 -0700
| Newsgroups | gmane.comp.programming.tools.scons.user |
|---|---|
| Message-ID | <[email protected]> |
On 12/23/23 08:39, Yu,Zhiwei (YFI,Shanghai,CN) via Scons-users wrote: > Hi Guys, > > I add -j12 param, then the console output is disordered. > I wonder that the reason is python's print function is not > thread-safe or atomic operation, right? > How could I fix the problem when I use SCONS. There are two sources of output: (1) scons-generated (by default, the command line, modifiable by setting the various COMSTR variables, or setting up a PRINT_CMD_LINE_FUNC). This text should not have any particular interleave problems. (2) command-issued output. This you can't do much about, because SCons isn't really designed for that. As jobs are classified as ready to run, they're put on the queue; meanwhile when a job runner slot opens up, it's assigned a job from the queue. Those are run as subprocesses, and run independently; SCons doesn't collect their output or any other information besides the exit status. So you're just seeing the effect of having 12 job runner slots all firing off jobs as they become available - if those generate their own output that can well interleave. To not have interleaved command output, you'd need to convince SCons to collect the output of the subprocesses rather than going to the default stdout/stderr. That is possible, but beyond the scope of a first answer. _______________________________________________ Scons-users mailing list [email protected] https://pairlist4.pair.net/mailman/listinfo/scons-users