private void NotifyWorkItemProgress(object threadLocalCompletionCountObject, int currentTimeMs) { ThreadInt64PersistentCounter.Increment(threadLocalCompletionCountObject); _separated.lastDequeueTime = currentTimeMs; if (ShouldAdjustMaxWorkersActive(currentTimeMs)) { AdjustMaxWorkersActive(); } }
private void NotifyWorkItemProgress(object threadLocalCompletionCountObject, int currentTimeMs) { ThreadInt64PersistentCounter.Increment(threadLocalCompletionCountObject); Volatile.Write(ref _separated.lastDequeueTime, Environment.TickCount); if (ShouldAdjustMaxWorkersActive(currentTimeMs)) { AdjustMaxWorkersActive(); } }
internal bool NotifyWorkItemComplete() { _completionCounter.Increment(); Volatile.Write(ref _separated.lastDequeueTime, Environment.TickCount); if (ShouldAdjustMaxWorkersActive() && _hillClimbingThreadAdjustmentLock.TryAcquire()) { try { AdjustMaxWorkersActive(); } finally { _hillClimbingThreadAdjustmentLock.Release(); } } return(!WorkerThread.ShouldStopProcessingWorkNow()); }
internal static void IncrementCompletedWorkItemCount() => s_completedWorkItemCounter.Increment();
internal static void IncrementLockContentionCount() => s_lockContentionCounter.Increment();
internal static void IncrementLockContentionCount() => ThreadInt64PersistentCounter.Increment(t_ContentionCountObject ?? CreateThreadLocalContentionCountObject());