You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@@ -46,8 +46,6 @@ namespace System.Runtime.Remoting.Contexts
|
||||
bool _bReEntrant;
|
||||
int _flavor;
|
||||
|
||||
[NonSerialized]
|
||||
bool _locked;
|
||||
[NonSerialized]
|
||||
int _lockCount;
|
||||
|
||||
@@ -90,32 +88,26 @@ namespace System.Runtime.Remoting.Contexts
|
||||
{
|
||||
get
|
||||
{
|
||||
return _locked;
|
||||
return _lockCount > 0;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (value)
|
||||
{
|
||||
_mutex.WaitOne ();
|
||||
AcquireLock ();
|
||||
lock (this)
|
||||
{
|
||||
_lockCount++;
|
||||
if (_lockCount > 1)
|
||||
ReleaseLock (); // Thread already had the lock
|
||||
|
||||
_ownerThread = Thread.CurrentThread;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lock (this)
|
||||
{
|
||||
while (_lockCount > 0 && _ownerThread == Thread.CurrentThread)
|
||||
{
|
||||
_lockCount--;
|
||||
_mutex.ReleaseMutex ();
|
||||
_ownerThread = null;
|
||||
while (_lockCount > 0 && _ownerThread == Thread.CurrentThread) {
|
||||
ReleaseLock ();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -140,7 +132,9 @@ namespace System.Runtime.Remoting.Contexts
|
||||
if (_lockCount > 0 && _ownerThread == Thread.CurrentThread) {
|
||||
_lockCount--;
|
||||
_mutex.ReleaseMutex ();
|
||||
_ownerThread = null;
|
||||
if (_lockCount == 0) {
|
||||
_ownerThread = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user