internal virtual void UpgradeReadToWrite()
{
lock (this)
{
System.Diagnostics.Debug.Assert(readCount > 0);
upgradeCount++;
while (readCount > upgradeCount || writeThread != null)
{
DoWait();
}
writeThread = ThreadClass.Current();
readCount--;
upgradeCount--;
}
}