diff --git a/Mono.Debugging/Mono.Debugging.Evaluation/AsyncEvaluationTracker.cs b/Mono.Debugging/Mono.Debugging.Evaluation/AsyncEvaluationTracker.cs index 020603133..25dcd3279 100644 --- a/Mono.Debugging/Mono.Debugging.Evaluation/AsyncEvaluationTracker.cs +++ b/Mono.Debugging/Mono.Debugging.Evaluation/AsyncEvaluationTracker.cs @@ -48,7 +48,12 @@ public class AsyncEvaluationTracker: RemoteFrameObject, IObjectValueUpdater, IDi int asyncCounter = 0; int cancelTimestamp = 0; TimedEvaluator runner = new TimedEvaluator (); - + + public bool UseTimeout { + get { return runner.UseTimeout; } + set { runner.UseTimeout = value; } + } + public int WaitTime { get { return runner.RunTimeout; } set { runner.RunTimeout = value; } diff --git a/Mono.Debugging/Mono.Debugging.Evaluation/ObjectValueAdaptor.cs b/Mono.Debugging/Mono.Debugging.Evaluation/ObjectValueAdaptor.cs index 35b7afb70..9a911d5ed 100644 --- a/Mono.Debugging/Mono.Debugging.Evaluation/ObjectValueAdaptor.cs +++ b/Mono.Debugging/Mono.Debugging.Evaluation/ObjectValueAdaptor.cs @@ -42,8 +42,19 @@ public abstract class ObjectValueAdaptor: IDisposable readonly Dictionary typeDisplayData = new Dictionary (); // Time to wait while evaluating before switching to async mode - public int DefaultEvaluationWaitTime { get; set; } - + public int DefaultEvaluationWaitTime { + get { return asyncEvaluationTracker.WaitTime; } + set { asyncEvaluationTracker.WaitTime = value; } + } + + /// + /// Enables or disables async evaluation + /// + public bool UseTimeout { + get { return asyncEvaluationTracker.UseTimeout; } + set { asyncEvaluationTracker.UseTimeout = value; } + } + public event EventHandler BusyStateChanged; static readonly Dictionary CSharpTypeNames = new Dictionary (); @@ -74,9 +85,7 @@ static ObjectValueAdaptor () protected ObjectValueAdaptor () { DefaultEvaluationWaitTime = 100; - asyncOperationManager.BusyStateChanged += (sender, e) => OnBusyStateChanged (e); - asyncEvaluationTracker.WaitTime = DefaultEvaluationWaitTime; } public void Dispose () diff --git a/Mono.Debugging/Mono.Debugging.Evaluation/TimedEvaluator.cs b/Mono.Debugging/Mono.Debugging.Evaluation/TimedEvaluator.cs index 36bc19dc1..ffcfff095 100644 --- a/Mono.Debugging/Mono.Debugging.Evaluation/TimedEvaluator.cs +++ b/Mono.Debugging/Mono.Debugging.Evaluation/TimedEvaluator.cs @@ -43,7 +43,7 @@ public class TimedEvaluator List executingTasks = new List (); int runningThreads; int busyThreads; - bool useTimeout; + internal bool UseTimeout { get; set; } bool disposed; static int threadNameId; @@ -54,7 +54,7 @@ public TimedEvaluator () : this (true) public TimedEvaluator (bool useTimeout) { RunTimeout = 1000; - this.useTimeout = useTimeout; + UseTimeout = useTimeout; } public int RunTimeout { get; set; } @@ -76,7 +76,7 @@ public bool IsEvaluating { /// public bool Run (EvaluatorDelegate evaluator, EvaluatorDelegate delayedDoneCallback) { - if (!useTimeout) { + if (!UseTimeout) { SafeRun (evaluator); return true; }