Пример #1
0
        private void LockBucket()
        {
            lock (this.instanceLock)
            {
                this.locked   = true;
                this.lockedAt = TimeProvider.UtcNow;
            }
            DateTime value = this.LockedUntilUtcNonUpdating.Value;

            ThrottlingPerfCounterWrapper.IncrementBudgetsLockedOut(this.BudgetKey, value - TimeProvider.UtcNow);
            if (Globals.ProcessInstanceType != InstanceType.NotInitialized)
            {
                Globals.LogEvent(DirectoryEventLogConstants.Tuple_UserLockedOutThrottling, string.Empty, new object[]
                {
                    this.BudgetKey,
                    value,
                    this.GetTraceInt(this.MaximumBalance),
                    this.GetTraceInt(this.RechargeRate),
                    this.GetTraceInt(this.MinimumBalance)
                });
            }
            ExTraceGlobals.ClientThrottlingTracer.TraceDebug <DateTime, int>((long)this.GetHashCode(), "[TokenBucket.LockBucket] Bucket locked until {0}.  Current Pending charges: {1}", value, this.PendingCharges);
        }