From: danmosemsft Date: Mon, 23 Jan 2017 18:07:06 +0000 (-0800) Subject: Remove disabled FEATURE_RWLOCK X-Git-Tag: accepted/tizen/base/20180629.140029~2536^2~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5a4752e68cc5769858856f1a96c00c6e10e301c3;p=platform%2Fupstream%2Fcoreclr.git Remove disabled FEATURE_RWLOCK --- diff --git a/clr.defines.targets b/clr.defines.targets index e2ef5b9..6fd0a2f 100644 --- a/clr.defines.targets +++ b/clr.defines.targets @@ -68,7 +68,6 @@ $(CDefines);FEATURE_REFLECTION_ONLY_LOAD $(CDefines);FEATURE_REJIT $(CDefines);FEATURE_REMOTING - $(CDefines);FEATURE_RWLOCK $(CDefines);FEATURE_SERIALIZATION $(CDefines);FEATURE_SORT_TABLES $(CDefines);FEATURE_STACK_PROBE @@ -136,7 +135,6 @@ $(DefineConstants);FEATURE_RANDOMIZED_STRING_HASHING $(DefineConstants);FEATURE_REFLECTION_ONLY_LOAD $(DefineConstants);FEATURE_REMOTING - $(DefineConstants);FEATURE_RWLOCK $(DefineConstants);FEATURE_SERIALIZATION $(DefineConstants);FEATURE_SORT_TABLES $(DefineConstants);FEATURE_SYNTHETIC_CULTURES diff --git a/clr.desktop.props b/clr.desktop.props index 989f17d..7d7c80f 100644 --- a/clr.desktop.props +++ b/clr.desktop.props @@ -55,7 +55,6 @@ true true - true true true true diff --git a/src/mscorlib/mscorlib.shared.sources.props b/src/mscorlib/mscorlib.shared.sources.props index c6fe7af..1a51ea8 100644 --- a/src/mscorlib/mscorlib.shared.sources.props +++ b/src/mscorlib/mscorlib.shared.sources.props @@ -688,7 +688,6 @@ - diff --git a/src/mscorlib/src/System/Threading/ReaderWriterLock.cs b/src/mscorlib/src/System/Threading/ReaderWriterLock.cs deleted file mode 100644 index e35ac76..0000000 --- a/src/mscorlib/src/System/Threading/ReaderWriterLock.cs +++ /dev/null @@ -1,276 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -// -/*============================================================ -** -** -** -** Purpose: Defines the lock that implements -** single-writer/multiple-reader semantics -** -** -===========================================================*/ - -#if FEATURE_RWLOCK -namespace System.Threading { - using System.Threading; - using System.Security.Permissions; - using System.Runtime.Remoting; - using System; - using System.Runtime.CompilerServices; - using System.Runtime.InteropServices; - using System.Runtime.ConstrainedExecution; - using System.Runtime.Versioning; - using System.Diagnostics.Contracts; - - [ComVisible(true)] - public sealed class ReaderWriterLock: CriticalFinalizerObject - { - /* - * Constructor - */ - public ReaderWriterLock() - { - PrivateInitialize(); - } - - /* - * Destructor - */ - ~ReaderWriterLock() - { - PrivateDestruct(); - } - - /* - * Property that returns TRUE if the reader lock is held - * by the current thread - */ - public bool IsReaderLockHeld { - [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] - get { - return(PrivateGetIsReaderLockHeld()); - } - } - - /* - * Property that returns TRUE if the writer lock is held - * by the current thread - */ - public bool IsWriterLockHeld { - [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] - get { - return(PrivateGetIsWriterLockHeld()); - } - } - - /* - * Property that returns the current writer sequence number. - * The caller should be a reader or writer for getting - * meaningful results - */ - public int WriterSeqNum { - get { - return(PrivateGetWriterSeqNum()); - } - } - - /* - * Acquires reader lock. The thread will block if a different - * thread has writer lock. - */ - [MethodImplAttribute(MethodImplOptions.InternalCall)] - private extern void AcquireReaderLockInternal(int millisecondsTimeout); - - public void AcquireReaderLock(int millisecondsTimeout) - { - AcquireReaderLockInternal(millisecondsTimeout); - } - - - public void AcquireReaderLock(TimeSpan timeout) - { - long tm = (long)timeout.TotalMilliseconds; - if (tm < -1 || tm > (long) Int32.MaxValue) - throw new ArgumentOutOfRangeException(nameof(timeout), Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegOrNegative1")); - AcquireReaderLockInternal((int)tm); - } - - /* - * Acquires writer lock. The thread will block if a different - * thread has reader lock. It will dead lock if this thread - * has reader lock. Use UpgardeToWriterLock when you are not - * sure if the thread has reader lock - */ - [MethodImplAttribute(MethodImplOptions.InternalCall)] - private extern void AcquireWriterLockInternal(int millisecondsTimeout); - - public void AcquireWriterLock(int millisecondsTimeout) - { - AcquireWriterLockInternal(millisecondsTimeout); - } - - public void AcquireWriterLock(TimeSpan timeout) - { - long tm = (long)timeout.TotalMilliseconds; - if (tm < -1 || tm > (long) Int32.MaxValue) - throw new ArgumentOutOfRangeException(nameof(timeout), Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegOrNegative1")); - AcquireWriterLockInternal((int)tm); - } - - - /* - * Releases reader lock. - */ - [MethodImplAttribute(MethodImplOptions.InternalCall)] - [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] - private extern void ReleaseReaderLockInternal(); - - [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] - public void ReleaseReaderLock() - { - ReleaseReaderLockInternal(); - } - - /* - * Releases writer lock. - */ - [MethodImplAttribute(MethodImplOptions.InternalCall)] - [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] - private extern void ReleaseWriterLockInternal(); - - [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] - public void ReleaseWriterLock() - { - ReleaseWriterLockInternal(); - } - - /* - * Upgardes the thread to a writer. If the thread has is a - * reader, it is possible that the reader lock was - * released before writer lock was acquired. - */ - public LockCookie UpgradeToWriterLock(int millisecondsTimeout) - { - LockCookie result = new LockCookie (); - FCallUpgradeToWriterLock (ref result, millisecondsTimeout); - return result; - } - - [MethodImplAttribute(MethodImplOptions.InternalCall)] - private extern void FCallUpgradeToWriterLock(ref LockCookie result, int millisecondsTimeout); - - public LockCookie UpgradeToWriterLock(TimeSpan timeout) - { - long tm = (long)timeout.TotalMilliseconds; - if (tm < -1 || tm > (long) Int32.MaxValue) - throw new ArgumentOutOfRangeException(nameof(timeout), Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegOrNegative1")); - return UpgradeToWriterLock((int)tm); - } - - /* - * Restores the lock status of the thread to the one it was - * in when it called UpgradeToWriterLock. - */ - [MethodImplAttribute(MethodImplOptions.InternalCall)] - private extern void DowngradeFromWriterLockInternal(ref LockCookie lockCookie); - - public void DowngradeFromWriterLock(ref LockCookie lockCookie) - { - DowngradeFromWriterLockInternal(ref lockCookie); - } - - /* - * Releases the lock irrespective of the number of times the thread - * acquired the lock - */ - public LockCookie ReleaseLock() - { - LockCookie result = new LockCookie (); - FCallReleaseLock (ref result); - return result; - } - - [MethodImplAttribute(MethodImplOptions.InternalCall)] - private extern void FCallReleaseLock(ref LockCookie result); - - /* - * Restores the lock status of the thread to the one it was - * in when it called ReleaseLock. - */ - [MethodImplAttribute(MethodImplOptions.InternalCall)] - private extern void RestoreLockInternal(ref LockCookie lockCookie); - - public void RestoreLock(ref LockCookie lockCookie) - { - RestoreLockInternal(ref lockCookie); - } - - /* - * Internal helper that returns TRUE if the reader lock is held - * by the current thread - */ - [MethodImplAttribute(MethodImplOptions.InternalCall)] - [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] - private extern bool PrivateGetIsReaderLockHeld(); - - /* - * Internal helper that returns TRUE if the writer lock is held - * by the current thread - */ - [MethodImplAttribute(MethodImplOptions.InternalCall)] - [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] - private extern bool PrivateGetIsWriterLockHeld(); - - /* - * Internal helper that returns the current writer sequence - * number. The caller should be a reader or writer for getting - * meaningful results - */ - [MethodImplAttribute(MethodImplOptions.InternalCall)] - private extern int PrivateGetWriterSeqNum(); - - /* - * Returns true if there were intermediate writes since the - * sequence number was obtained. The caller should be - * a reader or writer for getting meaningful results - */ - [MethodImplAttribute(MethodImplOptions.InternalCall)] - public extern bool AnyWritersSince(int seqNum); - - // Initialize state kept inside the lock - [MethodImplAttribute(MethodImplOptions.InternalCall)] - private extern void PrivateInitialize(); - - // Destruct resource associated with the lock - [MethodImplAttribute(MethodImplOptions.InternalCall)] - private extern void PrivateDestruct(); - - // State -#pragma warning disable 169 -#pragma warning disable 414 // These fields are not used from managed. - private IntPtr _hWriterEvent; - private IntPtr _hReaderEvent; - private IntPtr _hObjectHandle; - private int _dwState = 0; - private int _dwULockID = 0; - private int _dwLLockID = 0; - private int _dwWriterID = 0; - private int _dwWriterSeqNum = 0; - private short _wWriterLevel; -#if RWLOCK_STATISTICS - // WARNING: You must explicitly #define RWLOCK_STATISTICS when you - // build in both the VM and BCL directories if you want this. - private int _dwReaderEntryCount = 0; - private int _dwReaderContentionCount = 0; - private int _dwWriterEntryCount = 0; - private int _dwWriterContentionCount = 0; - private int _dwEventsReleasedCount = 0; -#endif // RWLOCK_STATISTICS -#pragma warning restore 414 -#pragma warning restore 169 - } -} -#endif //FEATURE_RWLOCK