Author: bodewig
Date: Mon Mar 30 09:03:45 2015
New Revision: 1670018

URL: http://svn.apache.org/r1670018
Log:
LOG4NET-443 prevent orphaned locks with ReaderWriterLockSlim in the face of 
aborted threads

Modified:
    logging/log4net/trunk/src/log4net/Util/ReaderWriterLock.cs

Modified: logging/log4net/trunk/src/log4net/Util/ReaderWriterLock.cs
URL: 
http://svn.apache.org/viewvc/logging/log4net/trunk/src/log4net/Util/ReaderWriterLock.cs?rev=1670018&r1=1670017&r2=1670018&view=diff
==============================================================================
--- logging/log4net/trunk/src/log4net/Util/ReaderWriterLock.cs (original)
+++ logging/log4net/trunk/src/log4net/Util/ReaderWriterLock.cs Mon Mar 30 
09:03:45 2015
@@ -88,7 +88,12 @@ namespace log4net.Util
                {
 #if HAS_READERWRITERLOCK
 #if HAS_READERWRITERLOCKSLIM
+                    // prevent ThreadAbort while updating state, see 
https://issues.apache.org/jira/browse/LOG4NET-443
+                    try { } 
+                    finally
+                    {
                        m_lock.EnterReadLock();
+                    }
 #else
                        m_lock.AcquireReaderLock(-1);
 #endif
@@ -132,7 +137,12 @@ namespace log4net.Util
                {
 #if HAS_READERWRITERLOCK
 #if HAS_READERWRITERLOCKSLIM
+                    // prevent ThreadAbort while updating state, see 
https://issues.apache.org/jira/browse/LOG4NET-443
+                    try { } 
+                    finally
+                    {
                        m_lock.EnterWriteLock();
+                    }
 #else
                        m_lock.AcquireWriterLock(-1);
 #endif


Reply via email to