override protected bool ReleaseHandle()
{
if (!bIsMutex || Environment.HasShutdownStarted)
return Win32Native.CloseHandle(handle);
bool bReturn = false;
bool bMutexObtained = false;
try
{
if (!bIsReservedMutex)
{
Mutex.AcquireReservedMutex(ref bMutexObtained);
}
bReturn = Win32Native.CloseHandle(handle);
}
finally
{
if (bMutexObtained)
Mutex.ReleaseReservedMutex();
}
return bReturn;
}