Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/debugger-libs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Karlaš <david.karlas@gmail.com>2020-07-14 10:27:22 +0300
committerDavid Karlaš <david.karlas@gmail.com>2020-07-14 10:29:32 +0300
commita24c6589f58af5e19bdebc288efa6200582ef990 (patch)
tree873e459ed536f25f76ffb2b6b45f3a0f900ea460 /Mono.Debugger.Soft
parentbf36d6f9e02d7245a6d5635aa2f8a0b20a6b5cff (diff)
Fix 1153385: Mono debug session stops responding and hangs if Theads pad is open
Problem was that multiple threads were fetching threads causing Start/Stop buffering to be all over the place causing runtime to get stuck in buffering which meant not sending responses…
Diffstat (limited to 'Mono.Debugger.Soft')
-rw-r--r--Mono.Debugger.Soft/Mono.Debugger.Soft/ThreadMirror.cs10
1 files changed, 6 insertions, 4 deletions
diff --git a/Mono.Debugger.Soft/Mono.Debugger.Soft/ThreadMirror.cs b/Mono.Debugger.Soft/Mono.Debugger.Soft/ThreadMirror.cs
index 4ee43c9..3aba645 100644
--- a/Mono.Debugger.Soft/Mono.Debugger.Soft/ThreadMirror.cs
+++ b/Mono.Debugger.Soft/Mono.Debugger.Soft/ThreadMirror.cs
@@ -81,11 +81,13 @@ namespace Mono.Debugger.Soft
{
if (threads.Count == 0)
return;
- threads [0].vm.conn.StartBuffering ();
- foreach (var thread in threads) {
- thread.FetchFrames ();
+ lock (threads[0].vm.conn) {
+ threads[0].vm.conn.StartBuffering ();
+ foreach (var thread in threads) {
+ thread.FetchFrames ();
+ }
+ threads[0].vm.conn.StopBuffering ();
}
- threads [0].vm.conn.StopBuffering ();
}
public string Name {