diff options
Diffstat (limited to 'src/mscorlib/src/System/Threading/EventWaitHandle.cs')
-rw-r--r-- | src/mscorlib/src/System/Threading/EventWaitHandle.cs | 69 |
1 files changed, 6 insertions, 63 deletions
diff --git a/src/mscorlib/src/System/Threading/EventWaitHandle.cs b/src/mscorlib/src/System/Threading/EventWaitHandle.cs index f56da1fa26..4b1611c6aa 100644 --- a/src/mscorlib/src/System/Threading/EventWaitHandle.cs +++ b/src/mscorlib/src/System/Threading/EventWaitHandle.cs @@ -13,7 +13,6 @@ =============================================================================*/ -#if !FEATURE_MACL namespace System.Security.AccessControl { public class EventWaitHandleSecurity @@ -23,7 +22,6 @@ namespace System.Security.AccessControl { } } -#endif namespace System.Threading { @@ -39,14 +37,11 @@ namespace System.Threading using System.Security.AccessControl; using System.Diagnostics.Contracts; - [HostProtection(Synchronization=true, ExternalThreading=true)] [ComVisibleAttribute(true)] public class EventWaitHandle : WaitHandle { - [System.Security.SecuritySafeCritical] // auto-generated public EventWaitHandle(bool initialState, EventResetMode mode) : this(initialState,mode,null) { } - [System.Security.SecurityCritical] // auto-generated_required public EventWaitHandle(bool initialState, EventResetMode mode, string name) { if(name != null) @@ -56,7 +51,7 @@ namespace System.Threading #else if (System.IO.Path.MaxPath < name.Length) { - throw new ArgumentException(Environment.GetResourceString("Argument_WaitHandleNameTooLong", Path.MaxPath), "name"); + throw new ArgumentException(Environment.GetResourceString("Argument_WaitHandleNameTooLong", Path.MaxPath), nameof(name)); } #endif } @@ -89,13 +84,11 @@ namespace System.Threading SetHandleInternal(_handle); } - [System.Security.SecurityCritical] // auto-generated_required public EventWaitHandle(bool initialState, EventResetMode mode, string name, out bool createdNew) : this(initialState, mode, name, out createdNew, null) { } - [System.Security.SecurityCritical] // auto-generated_required public unsafe EventWaitHandle(bool initialState, EventResetMode mode, string name, out bool createdNew, EventWaitHandleSecurity eventSecurity) { if(name != null) @@ -105,24 +98,12 @@ namespace System.Threading #else if (System.IO.Path.MaxPath < name.Length) { - throw new ArgumentException(Environment.GetResourceString("Argument_WaitHandleNameTooLong", Path.MaxPath), "name"); + throw new ArgumentException(Environment.GetResourceString("Argument_WaitHandleNameTooLong", Path.MaxPath), nameof(name)); } #endif } Contract.EndContractBlock(); Win32Native.SECURITY_ATTRIBUTES secAttrs = null; -#if FEATURE_MACL - // For ACL's, get the security descriptor from the EventWaitHandleSecurity. - if (eventSecurity != null) { - secAttrs = new Win32Native.SECURITY_ATTRIBUTES(); - secAttrs.nLength = (int)Marshal.SizeOf(secAttrs); - - byte[] sd = eventSecurity.GetSecurityDescriptorBinaryForm(); - byte* pSecDescriptor = stackalloc byte[sd.Length]; - Buffer.Memcpy(pSecDescriptor, 0, sd, 0, sd.Length); - secAttrs.pSecurityDescriptor = pSecDescriptor; - } -#endif SafeWaitHandle _handle = null; Boolean isManualReset; @@ -155,23 +136,16 @@ namespace System.Threading SetHandleInternal(_handle); } - [System.Security.SecurityCritical] // auto-generated private EventWaitHandle(SafeWaitHandle handle) { SetHandleInternal(handle); } - [System.Security.SecurityCritical] // auto-generated_required public static EventWaitHandle OpenExisting(string name) { -#if !FEATURE_MACL return OpenExisting(name, (EventWaitHandleRights)0); -#else - return OpenExisting(name, EventWaitHandleRights.Modify | EventWaitHandleRights.Synchronize); -#endif } - [System.Security.SecurityCritical] // auto-generated_required public static EventWaitHandle OpenExisting(string name, EventWaitHandleRights rights) { EventWaitHandle result; @@ -192,23 +166,16 @@ namespace System.Threading } } - [System.Security.SecurityCritical] // auto-generated_required public static bool TryOpenExisting(string name, out EventWaitHandle result) { -#if !FEATURE_MACL return OpenExistingWorker(name, (EventWaitHandleRights)0, out result) == OpenExistingResult.Success; -#else - return OpenExistingWorker(name, EventWaitHandleRights.Modify | EventWaitHandleRights.Synchronize, out result) == OpenExistingResult.Success; -#endif } - [System.Security.SecurityCritical] // auto-generated_required public static bool TryOpenExisting(string name, EventWaitHandleRights rights, out EventWaitHandle result) { return OpenExistingWorker(name, rights, out result) == OpenExistingResult.Success; } - [System.Security.SecurityCritical] // auto-generated_required private static OpenExistingResult OpenExistingWorker(string name, EventWaitHandleRights rights, out EventWaitHandle result) { #if PLATFORM_UNIX @@ -216,29 +183,25 @@ namespace System.Threading #else if (name == null) { - throw new ArgumentNullException("name", Environment.GetResourceString("ArgumentNull_WithParamName")); + throw new ArgumentNullException(nameof(name), Environment.GetResourceString("ArgumentNull_WithParamName")); } if(name.Length == 0) { - throw new ArgumentException(Environment.GetResourceString("Argument_EmptyName"), "name"); + throw new ArgumentException(Environment.GetResourceString("Argument_EmptyName"), nameof(name)); } if(null != name && System.IO.Path.MaxPath < name.Length) { - throw new ArgumentException(Environment.GetResourceString("Argument_WaitHandleNameTooLong", Path.MaxPath), "name"); + throw new ArgumentException(Environment.GetResourceString("Argument_WaitHandleNameTooLong", Path.MaxPath), nameof(name)); } Contract.EndContractBlock(); result = null; -#if FEATURE_MACL - SafeWaitHandle myHandle = Win32Native.OpenEvent((int) rights, false, name); -#else SafeWaitHandle myHandle = Win32Native.OpenEvent(Win32Native.EVENT_MODIFY_STATE | Win32Native.SYNCHRONIZE, false, name); -#endif - + if (myHandle.IsInvalid) { int errorCode = Marshal.GetLastWin32Error(); @@ -256,7 +219,6 @@ namespace System.Threading return OpenExistingResult.Success; #endif } - [System.Security.SecuritySafeCritical] // auto-generated public bool Reset() { bool res = Win32Native.ResetEvent(safeWaitHandle); @@ -264,7 +226,6 @@ namespace System.Threading __Error.WinIOError(); return res; } - [System.Security.SecuritySafeCritical] // auto-generated public bool Set() { bool res = Win32Native.SetEvent(safeWaitHandle); @@ -274,24 +235,6 @@ namespace System.Threading return res; } - -#if FEATURE_MACL - [System.Security.SecuritySafeCritical] // auto-generated - public EventWaitHandleSecurity GetAccessControl() - { - return new EventWaitHandleSecurity(safeWaitHandle, AccessControlSections.Access | AccessControlSections.Owner | AccessControlSections.Group); - } - - [System.Security.SecuritySafeCritical] // auto-generated - public void SetAccessControl(EventWaitHandleSecurity eventSecurity) - { - if (eventSecurity == null) - throw new ArgumentNullException("eventSecurity"); - Contract.EndContractBlock(); - - eventSecurity.Persist(safeWaitHandle); - } -#endif } } |