diff options
author | Oren Hurvitz | 2014-01-29 16:14:27 +0200 |
---|---|---|
committer | Oren Hurvitz | 2014-03-25 08:01:55 +0100 |
commit | e131e73652cf6ed2407e41c7d83dc67f49ca23ee (patch) | |
tree | e0d8573e47c8edd7f2effca8d4177bc57bd10a26 /OpenSim/Region/Framework | |
parent | Changed LogThreadPool to have 4 logging levels. Added console command "debug ... (diff) | |
download | opensim-SC-e131e73652cf6ed2407e41c7d83dc67f49ca23ee.zip opensim-SC-e131e73652cf6ed2407e41c7d83dc67f49ca23ee.tar.gz opensim-SC-e131e73652cf6ed2407e41c7d83dc67f49ca23ee.tar.bz2 opensim-SC-e131e73652cf6ed2407e41c7d83dc67f49ca23ee.tar.xz |
Run slow operations in a separate thread, instead of using FireAndForget (which has a 1-minute timeout)
Resolves http://opensimulator.org/mantis/view.php?id=6945
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 51f6c5e..726d8e2 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -1509,7 +1509,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1509 | { | 1509 | { |
1510 | tmpMS = Util.EnvironmentTickCount(); | 1510 | tmpMS = Util.EnvironmentTickCount(); |
1511 | m_cleaningTemps = true; | 1511 | m_cleaningTemps = true; |
1512 | Util.FireAndForget(delegate { CleanTempObjects(); m_cleaningTemps = false; }); | 1512 | Util.RunThreadNoTimeout(delegate { CleanTempObjects(); m_cleaningTemps = false; }, "CleanTempObjects", null); |
1513 | tempOnRezMS = Util.EnvironmentTickCountSubtract(tmpMS); | 1513 | tempOnRezMS = Util.EnvironmentTickCountSubtract(tmpMS); |
1514 | } | 1514 | } |
1515 | 1515 | ||
@@ -1682,7 +1682,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1682 | if (!m_backingup) | 1682 | if (!m_backingup) |
1683 | { | 1683 | { |
1684 | m_backingup = true; | 1684 | m_backingup = true; |
1685 | Util.FireAndForget(BackupWaitCallback); | 1685 | Util.RunThreadNoTimeout(BackupWaitCallback, "BackupWaitCallback", null); |
1686 | } | 1686 | } |
1687 | } | 1687 | } |
1688 | 1688 | ||
@@ -1695,7 +1695,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1695 | } | 1695 | } |
1696 | 1696 | ||
1697 | /// <summary> | 1697 | /// <summary> |
1698 | /// Wrapper for Backup() that can be called with Util.FireAndForget() | 1698 | /// Wrapper for Backup() that can be called with Util.RunThreadNoTimeout() |
1699 | /// </summary> | 1699 | /// </summary> |
1700 | private void BackupWaitCallback(object o) | 1700 | private void BackupWaitCallback(object o) |
1701 | { | 1701 | { |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 64c464d..080cdb4 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -3201,7 +3201,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3201 | public void SendInitialDataToMe() | 3201 | public void SendInitialDataToMe() |
3202 | { | 3202 | { |
3203 | // Send all scene object to the new client | 3203 | // Send all scene object to the new client |
3204 | Util.FireAndForget(delegate | 3204 | Util.RunThreadNoTimeout(delegate |
3205 | { | 3205 | { |
3206 | // we created a new ScenePresence (a new child agent) in a fresh region. | 3206 | // we created a new ScenePresence (a new child agent) in a fresh region. |
3207 | // Request info about all the (root) agents in this region | 3207 | // Request info about all the (root) agents in this region |
@@ -3216,7 +3216,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3216 | ((SceneObjectGroup)e).SendFullUpdateToClient(ControllingClient); | 3216 | ((SceneObjectGroup)e).SendFullUpdateToClient(ControllingClient); |
3217 | } | 3217 | } |
3218 | 3218 | ||
3219 | }); | 3219 | }, "SendInitialDataToMe", null); |
3220 | } | 3220 | } |
3221 | 3221 | ||
3222 | /// <summary> | 3222 | /// <summary> |