// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+using System.Runtime.InteropServices;
namespace System.Threading
{
- [Serializable]
+ [ComVisible (true)]
public struct LockCookie
{
internal int ThreadId;
ReaderLocks = reader_locks;
WriterLocks = writer_locks;
}
+
+ public override int GetHashCode ()
+ {
+ return(base.GetHashCode ());
+ }
+
+ public bool Equals (LockCookie obj)
+ {
+ if (this.ThreadId == obj.ThreadId &&
+ this.ReaderLocks == obj.ReaderLocks &&
+ this.WriterLocks == obj.WriterLocks) {
+ return(true);
+ } else {
+ return(false);
+ }
+ }
+
+ public override bool Equals (Object obj)
+ {
+ if (!(obj is LockCookie)) {
+ return(false);
+ }
+
+ return(obj.Equals (this));
+ }
+
+ public static bool operator == (LockCookie a, LockCookie b)
+ {
+ return a.Equals (b);
+ }
+
+ public static bool operator != (LockCookie a, LockCookie b)
+ {
+ return !a.Equals (b);
+ }
}
}