From 84d70d16e4ab2051d881251440fe4729f301b265 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 19 Mar 2021 10:30:45 -0700 Subject: Default to 1 if NUMBER_OF_PROCESSORS environment variable is invalid Also, use Environment.ProcessorCount to access NUMBER_OF_PROCESSORS Fixes wixtoolset/issues#5628 --- .../Bind/CreateCabinetsCommand.cs | 28 +++++----------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CreateCabinetsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CreateCabinetsCommand.cs index d4faabeb..83a4949e 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CreateCabinetsCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CreateCabinetsCommand.cs @@ -97,6 +97,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind if (this.CabbingThreadCount <= 0) { this.CabbingThreadCount = this.CalculateCabbingThreadCount(); + + this.Messaging.Write(VerboseMessages.SetCabbingThreadCount(this.CabbingThreadCount.ToString())); } // Send Binder object to Facilitate NewCabNamesCallBack Callback @@ -137,31 +139,13 @@ namespace WixToolset.Core.WindowsInstaller.Bind private int CalculateCabbingThreadCount() { - var cabbingThreadCount = 1; // default to 1 if the environment variable is not set. + var cabbingThreadCount = Environment.ProcessorCount; - var numberOfProcessors = Environment.GetEnvironmentVariable("NUMBER_OF_PROCESSORS"); - - try + if (cabbingThreadCount <= 0) { - if (!String.IsNullOrEmpty(numberOfProcessors)) - { - cabbingThreadCount = Convert.ToInt32(numberOfProcessors, CultureInfo.InvariantCulture.NumberFormat); - - if (cabbingThreadCount <= 0) - { - throw new WixException(ErrorMessages.IllegalEnvironmentVariable("NUMBER_OF_PROCESSORS", numberOfProcessors)); - } - } + cabbingThreadCount = 1; // reset to 1 when the environment variable is invalid. - this.Messaging.Write(VerboseMessages.SetCabbingThreadCount(this.CabbingThreadCount.ToString())); - } - catch (ArgumentException) - { - throw new WixException(ErrorMessages.IllegalEnvironmentVariable("NUMBER_OF_PROCESSORS", numberOfProcessors)); - } - catch (FormatException) - { - throw new WixException(ErrorMessages.IllegalEnvironmentVariable("NUMBER_OF_PROCESSORS", numberOfProcessors)); + this.Messaging.Write(WarningMessages.InvalidEnvironmentVariable("NUMBER_OF_PROCESSORS", Environment.ProcessorCount.ToString(), cabbingThreadCount.ToString())); } return cabbingThreadCount; -- cgit v1.2.3-55-g6feb