public void Test_GetReadLock() { using (_lock.GetReadLock()) { Assert.IsTrue(_lock.IsReadLockHeld); } Assert.IsFalse(_lock.IsReadLockHeld); }
public T this[int index] { get { using (_rwLock.GetReadLock()) { return(_list[index]); } } set { using (_rwLock.GetWriteLock()) { _list[index] = value; } } }
/// <summary> /// Gets an input. /// </summary> /// <param name="address">The address.</param> /// <returns></returns> public DiscreteInput GetInput(ushort address) { using (discreteInputsLock.GetReadLock()) { return(new DiscreteInput { Address = address, BoolValue = discreteInputs.Contains(address) }); } }
/// <summary> /// Gets a coil at an address. /// </summary> /// <param name="address">The address of the coil.</param> /// <returns></returns> public Coil GetCoil(ushort address) { using (coilsLock.GetReadLock()) { return(new Coil { Address = address, BoolValue = coils.Contains(address) }); } }
/// <summary> /// Gets an holding register. /// </summary> /// <param name="address">The address.</param> /// <returns></returns> public Register GetHoldingRegister(ushort address) { using (holdingRegistersLock.GetReadLock()) { if (holdingRegisters.TryGetValue(address, out ushort value)) { return new Register { Address = address, RegisterValue = value, Type = ModbusObjectType.HoldingRegister } } ; } return(new Register { Address = address, Type = ModbusObjectType.HoldingRegister }); }
public static IDisposable GetReadLock(this ReaderWriterLockSlim rwLock) { return(rwLock.GetReadLock(-1)); }
private static Privilege PrivilegeFromLuid(Luid luid) { using (_LuidLock.GetReadLock()) { return(_Luid.First(kv => kv.Value.LowPart == luid.LowPart && kv.Value.HighPart == luid.HighPart).Key); } }
public void GetReadLock_TryRead_Fail() { using (_locker.GetReadLock()) _locker.TryEnterReadLock(0); }