diff options
author | Bob Arnson <bob@firegiant.com> | 2020-05-07 21:34:09 -0400 |
---|---|---|
committer | Bob Arnson <bob@firegiant.com> | 2020-05-07 21:45:00 -0400 |
commit | 5eabd27e1af2827228b1ed925664bc15d9035484 (patch) | |
tree | abf698289af765770d5672a2edf667ea4066167d /src | |
parent | c53d0d1cc57ce3ed1450adb2c469e2b747584159 (diff) | |
download | wix-5eabd27e1af2827228b1ed925664bc15d9035484.tar.gz wix-5eabd27e1af2827228b1ed925664bc15d9035484.tar.bz2 wix-5eabd27e1af2827228b1ed925664bc15d9035484.zip |
Fix timeout
Increase WixNative*.exe timeout to 10 minutes and properly handle when there's a timeout.
Diffstat (limited to 'src')
-rw-r--r-- | src/WixToolset.Core.Native/WixNativeExe.cs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/WixToolset.Core.Native/WixNativeExe.cs b/src/WixToolset.Core.Native/WixNativeExe.cs index 994fc7ec..afa2ed7c 100644 --- a/src/WixToolset.Core.Native/WixNativeExe.cs +++ b/src/WixToolset.Core.Native/WixNativeExe.cs | |||
@@ -11,7 +11,7 @@ namespace WixToolset.Core.Native | |||
11 | 11 | ||
12 | internal class WixNativeExe | 12 | internal class WixNativeExe |
13 | { | 13 | { |
14 | private const int FiveMinutesInMilliseconds = 300000; | 14 | private const int TenMinutesInMilliseconds = 600000; |
15 | private static string PathToWixNativeExe; | 15 | private static string PathToWixNativeExe; |
16 | 16 | ||
17 | private readonly string commandLine; | 17 | private readonly string commandLine; |
@@ -63,17 +63,22 @@ namespace WixToolset.Core.Native | |||
63 | process.StandardInput.WriteLine(); | 63 | process.StandardInput.WriteLine(); |
64 | } | 64 | } |
65 | 65 | ||
66 | if (process.WaitForExit(FiveMinutesInMilliseconds)) | 66 | if (process.WaitForExit(TenMinutesInMilliseconds)) |
67 | { | 67 | { |
68 | // If the process successfully exits documentation says we need to wait again | 68 | // If the process successfully exits documentation says we need to wait again |
69 | // without a timeout to ensure that all of the redirected output is captured. | 69 | // without a timeout to ensure that all of the redirected output is captured. |
70 | // | 70 | // |
71 | process.WaitForExit(); | 71 | process.WaitForExit(); |
72 | } | ||
73 | 72 | ||
74 | if (process.ExitCode != 0) | 73 | if (process.ExitCode != 0) |
74 | { | ||
75 | throw new Win32Exception(process.ExitCode); | ||
76 | } | ||
77 | } | ||
78 | else | ||
75 | { | 79 | { |
76 | throw new Win32Exception(process.ExitCode); | 80 | process.Kill(); |
81 | throw new Win32Exception(1460/*ERROR_TIMEOUT*/); | ||
77 | } | 82 | } |
78 | } | 83 | } |
79 | 84 | ||