Imported Upstream version 4.6.0.125

Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-08-03 10:59:49 +00:00
parent a569aebcfd
commit e79aa3c0ed
17047 changed files with 3137615 additions and 392334 deletions

View File

@@ -1,163 +0,0 @@
2010-03-16 Jb Evain <jbevain@novell.com>
* Context.cs: use MOONLIGHT symbol to disambiguate
MonoTouch and Moonlight code.
2009-10-07 Sebastien Pouliot <sebastien@ximian.com>
* Context.cs: Remove LocalDataStoreSlot-related methods from
Moonlight build
2008-07-02 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
* IDynamicMessageSink.cs
* IContextProperty.cs: Fix parameter names
* ContextAttribute.cs: Fix parameter names, exception names
2007-08-15 Atsushi Enomoto <atsushi@ximian.com>
* SynchronizationAttribute.cs : [ComVisible]
Tue Jan 23 17:48:42 CET 2007 Paolo Molaro <lupus@ximian.com>
* Context.cs: mark the GC-tracked field with UIntPtr.
Wed Mar 15 16:35:13 CET 2006 Paolo Molaro <lupus@ximian.com>
* Context.cs: update for LocalDataStoreSlot changes.
2006-01-31 Lluis Sanchez Gual <lluis@novell.com>
* Context.cs: Fixed double check lock.
2005-12-08 Sebastien Pouliot <sebastien@ximian.com>
* Context.cs: ContextProperties property is virtual.
* CrossContextDelegate.cs: Removed [Serializable] from 2.0 build.
* SynchronizationAttribute.cs: Fixed serialization to be compatible
with MS FX. Removed old TODO.
2005-05-09 Lluis Sanchez Gual <lluis@novell.com>
* SynchronizationAttribute.cs: Make it serializable. Fixes bug #60228.
2005-05-06 Lluis Sanchez Gual <lluis@novell.com>
* Context.cs: Fix unsafe double-check locks.
2005-05-02 Zoltan Varga <vargaz@freemail.hu>
* Context.cs: Remove process_id field to sync with the unmanaged
structure.
2004-10-26 Lluis Sanchez Gual <lluis@novell.com>
* Context.cs: Added NeedsContextSink property, which returns TRUE if
the current context has sinks that need to be executed when switching to
another context.
2004-09-22 Lluis Sanchez Gual <lluis@novell.com>
* Context.cs: In CreateServerObjectSinkChain, added a parameter to
specify that messages must be dispatched to the target object using
InternalExecute. Usually if the target is a proxy, the sink uses
RealProxy.Invoke to dispatch the method. This can't be done for local
CBOs since we would loop for ever.
2004-06-15 Gert Driesen <drieseng@users.sourceforge.net>
* SynchronizationAttribute.cs: added TODO for serialization
2004-06-09 Gert Driesen <drieseng@users.sourceforge.net>
* Context.cs: Added finalizer to match MS.NET
2003-12-23 Lluis Sanchez Gual <lluis@ximian.com>
* SynchronizationAttribute.cs: Several bug fixes.
2003-11-21 Lluis Sanchez Gual <lluis@ximian.com>
* Context.cs: Added internal static_data field.
2003-11-19 Lluis Sanchez Gual <lluis@ximian.com>
* Context.cs: Implemented several missing methods and properties:
ContextProperties, DoCallBack, AllocateDataSlot, AllocateNamedDataSlot,
FreeNamedDataSlot, GetData, GetNamedDataSlot, SetData.
* SynchronizationAttribute.cs: Fixed check for current context.
2003-11-18 Lluis Sanchez Gual <lluis@ximian.com>
* SynchronizationAttribute.cs: Implemented.
2003-11-14 Miguel de Icaza <miguel@ximian.com>
* ContextProperty.cs: Add implementaion bits.
2003-07-28 Duncan Mak <duncan@ximian.com>
* ContextAttribute.cs: Removed constructor.
2003-04-03 Lluis Sanchez Gual <lluis@ideary.com>
* CrossContextChannel.cs: Improved support for OneWay and Async messages.
2003-03-20 Lluis Sanchez Gual <lluis@ideary.com>
* Context.cs: Implemented support for dynamic properties and dynamic message sinks.
* CrossContextChannel.cs: Added support for dynamic message sinks.
2003-03-03 Lluis Sanchez Gual <lluis@ideary.com>
* Context.cs : Management of the default context moved to the runtime.
Implemented creation of the client context, server context, object and envoy sinks.
Added method for creating a new context.
* CrossContextChannel.cs : Removed check for construction messages. Now construction
go through the IActivators.
2003-02-18 Lluis Sanchez Gual <lluis@ideary.com>
* Contexts.cs : Added methods for getting the client context sink chain and the
envoy sink chain. Also added stub methods for context switch and creation.
* CrossContextChannel.cs : Added.
2003-02-03 Patrik Torstensson
* Contexts.cs : Changed order of fields to match the runtime implementation.
2003-01-29 Lluis Sanchez Gual <lluis@ideary.com>
* Context.cs: Object sinks must be created for each object
(they can contain object-specific info).
2002-12-20 Lluis Sanchez Gual <lluis@ideary.com>
* Context.cs: Added creation of default server context and
object context sinks.
2002-07-31 Duncan Mak <duncan@ximian.com>
* SynchronizationAttribute.cs: Added more interfaces, it
implements them (via CorCompare), but they're not listed in the docs.
* ContextProperty.cs:
* CrossContextDelegate.cs: Added to CVS.
* ContextAttribute.cs: Added missing constructor.
2002-07-29 Duncan Mak <duncan@ximian.com>
* IContributeServerContentSink.cs: Removed.
* IContributeServerContextSink.cs: Replaces IContributeServerContentSink.
2002-07-24 Duncan Mak <duncan@ximian.com>
* SynchronizationAttribute.cs: Added missing attributes.
* IContextPropertyActivator.cs:
* IContributeClientContextSink.cs:
* IContributeDynamicSink.cs:
* IContributeEnvoySink.cs:
* IContributeObjectSink.cs:
* IContributeServerContentSink.cs: Added the missing interfaces.

View File

@@ -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;
}
}
}
}