Merge pull request #2720 from mono/fix-39325
[mono.git] / mcs / class / Microsoft.Build / Microsoft.Build.Execution / BuildManager.cs
index 0c179afa48efedf470ffea5b6c884576b8a7d6c8..c295d3ba67f30a6ead7b70938f594380a009c5f6 100644 (file)
@@ -54,14 +54,14 @@ namespace Microsoft.Build.Execution
                
                public void Dispose ()
                {
-                       WaitHandle.WaitAll (submissions.Select (s => s.WaitHandle).ToArray ());
+                       if (submissions.Count > 0)
+                               WaitHandle.WaitAll (submissions.Select (s => s.WaitHandle).ToArray ());
                        BuildNodeManager.Stop ();
                }
 
                ~BuildManager ()
                {
                        // maybe processes created by out-of-process nodes should be signaled.
-                       BuildNodeManager.Stop ();
                }
 
                readonly List<BuildSubmission> submissions = new List<BuildSubmission> ();
@@ -113,7 +113,6 @@ namespace Microsoft.Build.Execution
                                throw new InvalidOperationException ("Build has not started");
                        if (submissions.Count > 0)
                                WaitHandle.WaitAll (submissions.Select (s => s.WaitHandle).ToArray ());
-                       BuildNodeManager.Stop ();
                        ongoing_build_parameters = null;
                }