add AddOpenSimExtraFeature to simulator features, so it is done under proper locking. Fix gridservice extra features merge (they override older). This does need a future cleanup
							parent
							
								
									72c1c923f8
								
							
						
					
					
						commit
						fa5b4dc5d8
					
				|  | @ -235,6 +235,22 @@ namespace OpenSim.Region.ClientStack.Linden | |||
|                 m_features[name] = value; | ||||
|         } | ||||
| 
 | ||||
|         public void AddOpenSimExtraFeature(string name, OSD value) | ||||
|         { | ||||
|             lock (m_features) | ||||
|             { | ||||
|                 OSDMap extrasMap; | ||||
|                 if (m_features.TryGetValue("OpenSimExtras", out OSD extra)) | ||||
|                     extrasMap = extra as OSDMap; | ||||
|                 else | ||||
|                 { | ||||
|                     extrasMap = new OSDMap(); | ||||
|                 } | ||||
|                 extrasMap[name] = value; | ||||
|                 m_features["OpenSimExtras"] = extrasMap; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         public bool RemoveFeature(string name) | ||||
|         { | ||||
|             lock (m_features) | ||||
|  | @ -315,9 +331,15 @@ namespace OpenSim.Region.ClientStack.Linden | |||
| 
 | ||||
|             lock (m_features) | ||||
|             { | ||||
|                 OSDMap extrasMap = new OSDMap(); | ||||
|                 OSDMap extrasMap; | ||||
|                 if (m_features.TryGetValue("OpenSimExtras", out OSD extra)) | ||||
|                     extrasMap = extra as OSDMap; | ||||
|                 else | ||||
|                 { | ||||
|                     extrasMap = new OSDMap(); | ||||
|                 } | ||||
| 
 | ||||
|                 foreach(string key in extraFeatures.Keys) | ||||
|                 foreach (string key in extraFeatures.Keys) | ||||
|                 { | ||||
|                     extrasMap[key] = (string)extraFeatures[key]; | ||||
| 
 | ||||
|  | @ -327,7 +349,6 @@ namespace OpenSim.Region.ClientStack.Linden | |||
|                     } | ||||
|                 } | ||||
|                 m_features["OpenSimExtras"] = extrasMap; | ||||
| 
 | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|  |  | |||
|  | @ -40,6 +40,7 @@ namespace OpenSim.Region.Framework.Interfaces | |||
|     { | ||||
|         event SimulatorFeaturesRequestDelegate OnSimulatorFeaturesRequest; | ||||
|         void AddFeature(string name, OSD value); | ||||
|         void AddOpenSimExtraFeature(string name, OSD value); | ||||
|         bool RemoveFeature(string name); | ||||
|         bool TryGetFeature(string name, out OSD value); | ||||
|         OSDMap GetFeatures(); | ||||
|  |  | |||
|  | @ -1255,23 +1255,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
|             ISimulatorFeaturesModule fm = RequestModuleInterface<ISimulatorFeaturesModule>(); | ||||
|             if (fm != null) | ||||
|             { | ||||
|                 OSD openSimExtras; | ||||
|                 OSDMap openSimExtrasMap; | ||||
| 
 | ||||
|                 if (!fm.TryGetFeature("OpenSimExtras", out openSimExtras)) | ||||
|                     openSimExtras = new OSDMap(); | ||||
| 
 | ||||
|                 float statisticsFPSfactor = 1.0f; | ||||
|                 if(Normalized55FPS) | ||||
|                     statisticsFPSfactor = 55.0f * FrameTime; | ||||
| 
 | ||||
|                 openSimExtrasMap = (OSDMap)openSimExtras; | ||||
|                 openSimExtrasMap["SimulatorFPS"] = OSD.FromReal(1.0f / FrameTime); | ||||
|                 openSimExtrasMap["SimulatorFPSFactor"] = OSD.FromReal(statisticsFPSfactor); | ||||
|                 openSimExtrasMap["SimulatorFPSWarnPercent"] = OSD.FromInteger(FrameTimeWarnPercent); | ||||
|                 openSimExtrasMap["SimulatorFPSCritPercent"] = OSD.FromInteger(FrameTimeCritPercent); | ||||
| 
 | ||||
|                 fm.AddFeature("OpenSimExtras", openSimExtrasMap); | ||||
|                 fm.AddOpenSimExtraFeature("SimulatorFPS", OSD.FromReal(1.0f / FrameTime)); | ||||
|                 fm.AddOpenSimExtraFeature("SimulatorFPSFactor", OSD.FromReal(statisticsFPSfactor)); | ||||
|                 fm.AddOpenSimExtraFeature("SimulatorFPSWarnPercent", OSD.FromInteger(FrameTimeWarnPercent)); | ||||
|                 fm.AddOpenSimExtraFeature("SimulatorFPSCritPercent", OSD.FromInteger(FrameTimeCritPercent)); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 UbitUmarov
						UbitUmarov