Beispiel #1
0
        internal static int MeasureClusApiAndKillIfExceeds(string apiName, string hintStr, Func <int> func)
        {
            TimerCallback latencyCallback = null;

            if (LatencyChecker.EnableClusterKill)
            {
                latencyCallback = new TimerCallback(LatencyChecker.OnClusApiHang);
            }
            TimeSpan currentLatency;
            int      result = LatencyChecker.Measure(apiName, hintStr, TimeSpan.FromSeconds((double)RegistryParameters.ClusApiLatencyAllowedInSec), TimeSpan.FromSeconds((double)RegistryParameters.ClusApiHangActionLatencyAllowedInSec), latencyCallback, func, out currentLatency);

            LatencyChecker.RaiseGreenEventIfNeeded(currentLatency);
            return(result);
        }