using System;
using System.Runtime.ConstrainedExecution;
using System.Threading;
namespace Microsoft.Win32.SafeHandles
{
/// Represents a wrapper class for a wait handle.
// Token: 0x02000071 RID: 113
public sealed class SafeWaitHandle : SafeHandleZeroOrMinusOneIsInvalid
{
/// Initializes a new instance of the class.
/// An object that represents the pre-existing handle to use.
/// true to reliably release the handle during the finalization phase; false to prevent reliable release (not recommended).
// Token: 0x060006EF RID: 1775 RVA: 0x00015528 File Offset: 0x00013728
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public SafeWaitHandle(IntPtr existingHandle, bool ownsHandle)
: base(ownsHandle)
{
base.SetHandle(existingHandle);
}
// Token: 0x060006F0 RID: 1776 RVA: 0x00015538 File Offset: 0x00013738
protected override bool ReleaseHandle()
{
NativeEventCalls.CloseEvent_internal(this.handle);
return true;
}
}
}