diff options
author | David Karlaš <david.karlas@gmail.com> | 2020-07-14 10:27:22 +0300 |
---|---|---|
committer | David Karlaš <david.karlas@gmail.com> | 2020-07-14 10:29:32 +0300 |
commit | a24c6589f58af5e19bdebc288efa6200582ef990 (patch) | |
tree | 873e459ed536f25f76ffb2b6b45f3a0f900ea460 /Mono.Debugger.Soft | |
parent | bf36d6f9e02d7245a6d5635aa2f8a0b20a6b5cff (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.cs | 10 |
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 { |