From 4b1ecc90fcb1e577d1f02f40fac1e53c66c63496 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sat, 5 Sep 2015 21:23:22 +0100 Subject: fix modifing m_threads on a foreach scanning it --- OpenSim/Framework/Monitoring/Watchdog.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'OpenSim/Framework/Monitoring/Watchdog.cs') diff --git a/OpenSim/Framework/Monitoring/Watchdog.cs b/OpenSim/Framework/Monitoring/Watchdog.cs index 0cab427..4485a9c 100644 --- a/OpenSim/Framework/Monitoring/Watchdog.cs +++ b/OpenSim/Framework/Monitoring/Watchdog.cs @@ -335,7 +335,9 @@ namespace OpenSim.Framework.Monitoring lock (m_threads) { - foreach (ThreadWatchdogInfo threadInfo in m_threads.Values) + // get a copy since we may change m_threads + List threadsInfo = m_threads.Values.ToList(); + foreach (ThreadWatchdogInfo threadInfo in threadsInfo) { if (threadInfo.Thread.ThreadState == ThreadState.Stopped) { -- cgit v1.1