3 // Copyright (c) Microsoft Corporation. All rights reserved.
7 // <OWNER>Microsoft</OWNER>
8 /*============================================================
13 ** Purpose: Defines the lock that implements
14 ** single-writer/multiple-reader semantics
17 ===========================================================*/
19 namespace System.Threading {
22 [System.Runtime.InteropServices.ComVisible(true)]
23 public struct LockCookie
26 private int _dwWriterSeqNum;
27 private int _wReaderAndWriterLevel;
28 private int _dwThreadID;
30 public override int GetHashCode()
32 // review - Microsoft!
33 return _dwFlags + _dwWriterSeqNum + _wReaderAndWriterLevel + _dwThreadID;
36 public override bool Equals(Object obj)
38 if (obj is LockCookie)
39 return Equals((LockCookie)obj);
44 public bool Equals(LockCookie obj)
46 return obj._dwFlags == _dwFlags && obj._dwWriterSeqNum == _dwWriterSeqNum &&
47 obj._wReaderAndWriterLevel == _wReaderAndWriterLevel && obj._dwThreadID == _dwThreadID;
50 public static bool operator ==(LockCookie a, LockCookie b)
55 public static bool operator !=(LockCookie a, LockCookie b)