diff options
author | BarryBo <barrybo@microsoft.com> | 2016-07-22 15:27:54 -0700 |
---|---|---|
committer | BarryBo <barrybo@microsoft.com> | 2016-07-22 15:27:54 -0700 |
commit | 2edc4a4e70b9dcf6fc91ddcc07fd500b705de5d2 (patch) | |
tree | 3d06ac193219915b2f43320bd91402115b44fa05 /Source/ExecutionEngine/ExecutionEngine.cs | |
parent | 0632d3956b7cd10cdc4975cdfc669b73892a121d (diff) |
Run Boogie code on threads with large stacks
Replace TaskScheduler.Default by a custom TaskScheduler. The .Default
uses threadpool threads whose stack size is controlled by the host EXE
header. The new ThreadTaskScheduler give Boogie control over the stack
size, and defaults to 16mb.
Diffstat (limited to 'Source/ExecutionEngine/ExecutionEngine.cs')
-rw-r--r-- | Source/ExecutionEngine/ExecutionEngine.cs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Source/ExecutionEngine/ExecutionEngine.cs b/Source/ExecutionEngine/ExecutionEngine.cs index 9bc855be..5a22cc15 100644 --- a/Source/ExecutionEngine/ExecutionEngine.cs +++ b/Source/ExecutionEngine/ExecutionEngine.cs @@ -443,6 +443,8 @@ namespace Microsoft.Boogie static readonly ConcurrentDictionary<string, CancellationTokenSource> RequestIdToCancellationTokenSource = new ConcurrentDictionary<string, CancellationTokenSource>(); + static ThreadTaskScheduler Scheduler = new ThreadTaskScheduler(16 * 1024 * 1024); + public static void ProcessFiles(List<string> fileNames, bool lookForSnapshots = true, string programId = null) { Contract.Requires(cce.NonNullElements(fileNames)); @@ -977,7 +979,7 @@ namespace Microsoft.Boogie { break; } - tasks[j].Start(TaskScheduler.Default); + tasks[j].Start(Scheduler); } // Don't wait for tasks that haven't been started yet. |