private static void AcquireWriterLock()
{
int threadId = Thread.CurrentThread.ManagedThreadId;
if (_readerWriterLock.IsReaderLockHeld)
{
LockCookie lockCookie = _readerWriterLock.UpgradeToWriterLock(GlobalSettingsFacade.DefaultWriterLockWaitTimeout);
lock(_threadLocking)
{
_threadLocking.LockCookiesPerThreadId.Add(threadId, lockCookie);
}
}
else
{
_readerWriterLock.AcquireWriterLock(GlobalSettingsFacade.DefaultWriterLockWaitTimeout);
}
lock (_threadLocking)
{
if (_threadLocking.WriterLocksPerThreadId.ContainsKey(threadId))
{
_threadLocking.WriterLocksPerThreadId[threadId] = _threadLocking.WriterLocksPerThreadId[threadId] + 1;
}
else
{
_threadLocking.WriterLocksPerThreadId.Add(threadId, 1);
}
}
}