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