mirror of
https://github.com/opensim/opensim.git
synced 2026-08-05 08:55:56 +08:00
cosmetics
This commit is contained in:
@@ -477,30 +477,48 @@ namespace OpenSim.Framework
|
||||
|
||||
public TValue[] GetArray()
|
||||
{
|
||||
TValue[] ret = new TValue[0];
|
||||
bool gotLock = false;
|
||||
bool gotupLock = false;
|
||||
try
|
||||
{
|
||||
try { }
|
||||
finally
|
||||
{
|
||||
rwLock.EnterWriteLock();
|
||||
gotLock = true;
|
||||
rwLock.EnterUpgradeableReadLock();
|
||||
gotupLock = true;
|
||||
}
|
||||
|
||||
if (m_array == null)
|
||||
if (m_array == null)
|
||||
{
|
||||
bool gotwritelock = false;
|
||||
try
|
||||
{
|
||||
try { }
|
||||
finally
|
||||
{
|
||||
rwLock.EnterWriteLock();
|
||||
gotwritelock = true;
|
||||
}
|
||||
|
||||
m_array = new TValue[Dictionary1.Count];
|
||||
Dictionary1.Values.CopyTo(m_array, 0);
|
||||
}
|
||||
ret = m_array;
|
||||
finally
|
||||
{
|
||||
if (gotwritelock)
|
||||
rwLock.ExitWriteLock();
|
||||
}
|
||||
}
|
||||
return m_array;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return new TValue[0];
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (gotLock)
|
||||
rwLock.ExitWriteLock();
|
||||
if (gotupLock)
|
||||
rwLock.ExitUpgradeableReadLock();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user