Exemple #1
0
        private void ChangeStatus(AsyncLockStatus newStatus, AsyncLockStatus[] expectedPreviousStatuses)
        {
            var prevstatus = Interlocked.Exchange(ref _status, (int)newStatus);

            if (!expectedPreviousStatuses.Contains((AsyncLockStatus)prevstatus))
            {
                throw new InvalidOperationException($"Previous {nameof(AsyncLock)} state was unexpected: prev:{((AsyncLockStatus)prevstatus).ToString()} now:{((AsyncLockStatus)_status).ToString()}.");
            }
        }
Exemple #2
0
 private void ChangeStatus(AsyncLockStatus newStatus, AsyncLockStatus expectedPreviousStatus)
 {
     ChangeStatus(newStatus, new[] { expectedPreviousStatus });
 }