From e14e432b5023ae64d44010c622063944a5158bf2 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Wed, 14 Oct 2015 17:57:13 -0700
Subject: More exception catching in ODE at shutdown. Not sure why the
 exception happens.

---
 OpenSim/Region/PhysicsModules/Ode/OdeScene.cs | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

(limited to 'OpenSim')

diff --git a/OpenSim/Region/PhysicsModules/Ode/OdeScene.cs b/OpenSim/Region/PhysicsModules/Ode/OdeScene.cs
index adc8d98..a85d11a 100644
--- a/OpenSim/Region/PhysicsModules/Ode/OdeScene.cs
+++ b/OpenSim/Region/PhysicsModules/Ode/OdeScene.cs
@@ -40,6 +40,7 @@ using System.Diagnostics;
 using System.IO;
 using System.Linq;
 using System.Reflection;
+using System.Runtime.ExceptionServices;
 using System.Runtime.InteropServices;
 using System.Threading;
 using log4net;
@@ -4055,6 +4056,7 @@ namespace OpenSim.Region.PhysicsModule.ODE
             }
         }
 */
+        [HandleProcessCorruptedStateExceptions]
         public override void Dispose()
         {
             _worldInitialized = false;
@@ -4079,7 +4081,14 @@ namespace OpenSim.Region.PhysicsModule.ODE
                 //{
                     //RemoveAvatar(act);
                 //}
-                d.WorldDestroy(world);
+                try
+                {
+                    d.WorldDestroy(world);
+                }
+                catch (AccessViolationException e)
+                {
+                    m_log.ErrorFormat("[ODE SCENE]: exception {0}", e.Message);
+                }
                 //d.CloseODE();
             }
 
-- 
cgit v1.1