public ReaderLock(RWLock @lock)
     : base(@lock)
 {
     _lock.AcquireReaderLock();
     this.SetLocked();
 }
 public WriterLock(RWLock @lock)
     : base(@lock)
 {
     _lock.AcquireWriterLock();
     this.SetLocked();
 }
 public Lock(RWLock @lock)
 {
     _threadId  = Thread.CurrentThread.ManagedThreadId;
     _lock      = @lock;
     this.State = LockState.Locking;
 }