X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2Fcorlib%2FSystem.Runtime.Remoting.Contexts%2FSynchronizationAttribute.cs;h=430c455daa8bc1232e6f51b25024bc0e3bef7079;hb=95149da03ea22c4e6f7e9feda77ea2808fbf6586;hp=39ecbce7465af422485b9d7c0e0a5248fa971ff3;hpb=74c2e813151ef52866b58da63aeeed698b5e67dd;p=mono.git diff --git a/mcs/class/corlib/System.Runtime.Remoting.Contexts/SynchronizationAttribute.cs b/mcs/class/corlib/System.Runtime.Remoting.Contexts/SynchronizationAttribute.cs index 39ecbce7465..430c455daa8 100644 --- a/mcs/class/corlib/System.Runtime.Remoting.Contexts/SynchronizationAttribute.cs +++ b/mcs/class/corlib/System.Runtime.Remoting.Contexts/SynchronizationAttribute.cs @@ -5,10 +5,7 @@ // Lluis Sanchez Gual (lluis@ximian.com) // // (C) Novell, Inc. http://www.ximian.com -// - -// -// Copyright (C) 2004 Novell, Inc (http://www.novell.com) +// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the @@ -38,7 +35,7 @@ namespace System.Runtime.Remoting.Contexts { [AttributeUsage(AttributeTargets.Class)] [Serializable] - [MonoTODO ("Fix serialization compatibility with MS.NET")] + [System.Runtime.InteropServices.ComVisible (true)] public class SynchronizationAttribute: ContextAttribute, IContributeClientContextSink, IContributeServerContextSink { public const int NOT_SUPPORTED = 1; @@ -46,9 +43,12 @@ namespace System.Runtime.Remoting.Contexts public const int REQUIRED = 4; public const int REQUIRES_NEW = 8; - bool _isReentrant; + bool _bReEntrant; + int _flavor; + + [NonSerialized] bool _locked; - int _flag; + [NonSerialized] int _lockCount = 0; [NonSerialized] @@ -77,13 +77,13 @@ namespace System.Runtime.Remoting.Contexts if (flag != NOT_SUPPORTED && flag != REQUIRED && flag != REQUIRES_NEW && flag != SUPPORTED) throw new ArgumentException ("flag"); - _isReentrant = reEntrant; - _flag = flag; + _bReEntrant = reEntrant; + _flavor = flag; } public virtual bool IsReEntrant { - get { return _isReentrant; } + get { return _bReEntrant; } } public virtual bool Locked @@ -145,9 +145,10 @@ namespace System.Runtime.Remoting.Contexts } } + [System.Runtime.InteropServices.ComVisible (true)] public override void GetPropertiesForNewContext (IConstructionCallMessage ctorMsg) { - if (_flag != NOT_SUPPORTED) { + if (_flavor != NOT_SUPPORTED) { ctorMsg.ContextProperties.Add (this); } } @@ -162,10 +163,11 @@ namespace System.Runtime.Remoting.Contexts return new SynchronizedServerContextSink (nextSink, this); } + [System.Runtime.InteropServices.ComVisible (true)] public override bool IsContextOK (Context ctx, IConstructionCallMessage msg) { SynchronizationAttribute prop = ctx.GetProperty ("Synchronization") as SynchronizationAttribute; - switch (_flag) + switch (_flavor) { case NOT_SUPPORTED: return (prop == null); case REQUIRED: return (prop != null);