@@ -258,6 +258,7 @@ bool buildProjectParallelSimple(ProjectNode root, CompilingSession s, const(AdvC
258258 string mainPackHash = hashFrom(root.requirements, s);
259259 bool [ProjectNode] spawned;
260260 string [string ] env = getCurrentEnv();
261+ size_t execID = buildExecutions++ ;
261262
262263 AdvCacheFormula formulaCache;
263264
@@ -275,20 +276,22 @@ bool buildProjectParallelSimple(ProjectNode root, CompilingSession s, const(AdvC
275276 dep.requirements.buildData(false ), cast (shared )dep,
276277 s, HashPair (mainPackHash, hashFrom(dep.requirements, s)),
277278 getEnvForProject(dep, env),
278- 0
279+ execID
279280 );
280281 }
281282 else
282283 dep.becomeIndependent();
283284 }
284285 }
285- auto info = receiveOnly! (ProcessInfo, CompilationResult);
286- if (info[0 ] != ProcessInfo.init)
286+ auto info = receiveOnly! (CompilationID, ProcessInfo, CompilationResult);
287+ if (info[0 ].id != execID)
288+ continue ;
289+ if (info[1 ] != ProcessInfo.init)
287290 {
288- runningProcesses[info[0 ].pid] = true ;
291+ runningProcesses[info[1 ].pid] = true ;
289292 continue ;
290293 }
291- auto res = info[1 ];
294+ auto res = info[2 ];
292295 runningProcesses[res.pid] = false ;
293296 ProjectNode finishedPackage = cast ()res.node;
294297 if (res.status)
0 commit comments