aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Util.cs
diff options
context:
space:
mode:
authorTeravus Ovares (Dan Olivares)2009-11-29 05:06:25 -0500
committerTeravus Ovares (Dan Olivares)2009-11-29 05:06:25 -0500
commit4338f4e1d7c841ba447eb2d7481daaa009182bc7 (patch)
tree12a3822843fbd40beb1cd7149203bd20e4db79c1 /OpenSim/Framework/Util.cs
parentAdd some conditionals to references to the WorldComm module, so that the (diff)
downloadopensim-SC-4338f4e1d7c841ba447eb2d7481daaa009182bc7.zip
opensim-SC-4338f4e1d7c841ba447eb2d7481daaa009182bc7.tar.gz
opensim-SC-4338f4e1d7c841ba447eb2d7481daaa009182bc7.tar.bz2
opensim-SC-4338f4e1d7c841ba447eb2d7481daaa009182bc7.tar.xz
* Patch from Misterblue to fix Environment.TickCount for statistics purposes. Resolves the wrap-around of the 32 bit uint.
* Teravus moved the Environment methods to the Util class
Diffstat (limited to '')
-rw-r--r--OpenSim/Framework/Util.cs26
1 files changed, 25 insertions, 1 deletions
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index 87ba5a8..a459f8d 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -1389,6 +1389,30 @@ namespace OpenSim.Framework
1389 return null; 1389 return null;
1390 } 1390 }
1391 1391
1392 #endregion FireAndForget Threading Pattern 1392 #endregion FireAndForget Threading Pattern
1393 /// <summary>
1394 /// Environment.TickCount is an int but it counts all 32 bits so it goes positive
1395 /// and negative every 24.9 days. This trims down TickCount so it doesn't wrap
1396 /// for the callers.
1397 /// This trims it to a 12 day interval so don't let your frame time get too long.
1398 /// </summary>
1399 /// <returns></returns>
1400 public static Int32 EnvironmentTickCount()
1401 {
1402 return Environment.TickCount & EnvironmentTickCountMask;
1403 }
1404 const Int32 EnvironmentTickCountMask = 0x3fffffff;
1405
1406 /// <summary>
1407 /// Environment.TickCount is an int but it counts all 32 bits so it goes positive
1408 /// and negative every 24.9 days. Subtracts the passed value (previously fetched by
1409 /// 'EnvironmentTickCount()') and accounts for any wrapping.
1410 /// </summary>
1411 /// <returns>subtraction of passed prevValue from current Environment.TickCount</returns>
1412 public static Int32 EnvironmentTickCountSubtract(Int32 prevValue)
1413 {
1414 Int32 diff = EnvironmentTickCount() - prevValue;
1415 return (diff >= 0) ? diff : (diff + EnvironmentTickCountMask + 1);
1416 }
1393 } 1417 }
1394} 1418}