コード例 #1
0
ファイル: NonRecursiveLock.cs プロジェクト: landorphan/common
            internal ExitLock(Action releaseLockAction)
            {
                releaseLockAction.ArgumentNotNull(nameof(releaseLockAction));

                _releaseLockAction = releaseLockAction;
                _disposed          = new InterlockedBoolean(false);
            }
コード例 #2
0
ファイル: NonRecursiveLock.cs プロジェクト: landorphan/common
        /// <inheritdoc/>
        public void Dispose()
        {
            if (_isDisposed)
            {
                // already disposed
                return;
            }

            if (_isDisposing.ExchangeValue(true))
            {
                // already disposing
                return;
            }

            Dispose(true);
            _isDisposing = false;
            _isDisposed  = true;
        }
コード例 #3
0
 /// <inheritdoc />
 public bool Equals(InterlockedBoolean other)
 {
     return(Equals(other.GetValue()));
 }
コード例 #4
0
 /// <inheritdoc />
 public int CompareTo(InterlockedBoolean other)
 {
     return(GetValue().CompareTo(other.GetValue()));
 }
コード例 #5
0
 /// <summary>
 ///    Converts the given <paramref name="value" /> instance to a <see cref="Boolean" />.
 /// </summary>
 /// <param name="value">
 ///    The value to convert.
 /// </param>
 /// <returns>
 ///    The <see cref="Boolean" /> representation of <paramref name="value" />.
 /// </returns>
 public static bool ToBoolean(InterlockedBoolean value)
 {
     return(value.GetValue());
 }