diff options
author | UbitUmarov | 2017-05-25 06:05:02 +0100 |
---|---|---|
committer | UbitUmarov | 2017-05-25 06:05:02 +0100 |
commit | 772c5b7db030eb95da8852d711323244cfa91ab4 (patch) | |
tree | 8cc90e4081377edf98804513d606ad217c9e6751 /OpenSim/Framework | |
parent | Update macOS version of libode to 0.13.2. The library is build as a fat libra... (diff) | |
download | opensim-SC-772c5b7db030eb95da8852d711323244cfa91ab4.zip opensim-SC-772c5b7db030eb95da8852d711323244cfa91ab4.tar.gz opensim-SC-772c5b7db030eb95da8852d711323244cfa91ab4.tar.bz2 opensim-SC-772c5b7db030eb95da8852d711323244cfa91ab4.tar.xz |
move assetsconnector threads to whatchdog; Abort all alive threads known to watchdog before exit
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Framework/Monitoring/Watchdog.cs | 24 | ||||
-rw-r--r-- | OpenSim/Framework/Monitoring/WorkManager.cs | 1 | ||||
-rw-r--r-- | OpenSim/Framework/Servers/BaseOpenSimServer.cs | 3 |
3 files changed, 27 insertions, 1 deletions
diff --git a/OpenSim/Framework/Monitoring/Watchdog.cs b/OpenSim/Framework/Monitoring/Watchdog.cs index 9cc61ee..8a4894e 100644 --- a/OpenSim/Framework/Monitoring/Watchdog.cs +++ b/OpenSim/Framework/Monitoring/Watchdog.cs | |||
@@ -180,6 +180,30 @@ namespace OpenSim.Framework.Monitoring | |||
180 | m_watchdogTimer.Elapsed += WatchdogTimerElapsed; | 180 | m_watchdogTimer.Elapsed += WatchdogTimerElapsed; |
181 | } | 181 | } |
182 | 182 | ||
183 | public static void Stop() | ||
184 | { | ||
185 | if(m_threads == null) | ||
186 | return; | ||
187 | |||
188 | lock(m_threads) | ||
189 | { | ||
190 | m_enabled = false; | ||
191 | if(m_watchdogTimer != null) | ||
192 | { | ||
193 | m_watchdogTimer.Dispose(); | ||
194 | m_watchdogTimer = null; | ||
195 | } | ||
196 | |||
197 | foreach(ThreadWatchdogInfo twi in m_threads.Values) | ||
198 | { | ||
199 | Thread t = twi.Thread; | ||
200 | if(t.IsAlive) | ||
201 | t.Abort(); | ||
202 | } | ||
203 | m_threads.Clear(); | ||
204 | } | ||
205 | } | ||
206 | |||
183 | /// <summary> | 207 | /// <summary> |
184 | /// Add a thread to the watchdog tracker. | 208 | /// Add a thread to the watchdog tracker. |
185 | /// </summary> | 209 | /// </summary> |
diff --git a/OpenSim/Framework/Monitoring/WorkManager.cs b/OpenSim/Framework/Monitoring/WorkManager.cs index a3e0390..9d52f71 100644 --- a/OpenSim/Framework/Monitoring/WorkManager.cs +++ b/OpenSim/Framework/Monitoring/WorkManager.cs | |||
@@ -85,6 +85,7 @@ namespace OpenSim.Framework.Monitoring | |||
85 | public static void Stop() | 85 | public static void Stop() |
86 | { | 86 | { |
87 | JobEngine.Stop(); | 87 | JobEngine.Stop(); |
88 | Watchdog.Stop(); | ||
88 | } | 89 | } |
89 | 90 | ||
90 | /// <summary> | 91 | /// <summary> |
diff --git a/OpenSim/Framework/Servers/BaseOpenSimServer.cs b/OpenSim/Framework/Servers/BaseOpenSimServer.cs index bc68681..81dd357 100644 --- a/OpenSim/Framework/Servers/BaseOpenSimServer.cs +++ b/OpenSim/Framework/Servers/BaseOpenSimServer.cs | |||
@@ -119,9 +119,10 @@ namespace OpenSim.Framework.Servers | |||
119 | 119 | ||
120 | Thread.Sleep(1000); | 120 | Thread.Sleep(1000); |
121 | RemovePIDFile(); | 121 | RemovePIDFile(); |
122 | |||
122 | m_log.Info("[SHUTDOWN]: Shutdown processing on main thread complete. Exiting..."); | 123 | m_log.Info("[SHUTDOWN]: Shutdown processing on main thread complete. Exiting..."); |
123 | 124 | ||
124 | if (!SuppressExit) | 125 | if (!SuppressExit) |
125 | Environment.Exit(0); | 126 | Environment.Exit(0); |
126 | } | 127 | } |
127 | 128 | ||