Пример #1
0
        public async Task DistributeLockDifferentLockNameTestAsync()
        {
            ILockFactory processLockFactory = Init("Distribute").GetRequiredService <ILockFactory>();
            List <Task>  tasks = new List <Task>();
            int          sum   = 0;

            for (int i = 0; i < 10000; i++)
            {
                Task t = Task.Run(async() => {
                    using (ILock pLock = processLockFactory.GetLock(Guid.NewGuid().ToString()))
                    {
                        if (await pLock.WaitAsync())
                        {
                            sum++;
                        }
                    }
                });

                tasks.Add(t);
            }

            await Task.WhenAll(tasks.ToArray());

            Assert.AreNotEqual(10000, sum);
        }
Пример #2
0
        public async Task ProcessLockSameLockNameTestAsync()
        {
            ILockFactory processLockFactory = Init("Process").GetRequiredService <ILockFactory>();
            List <Task>  tasks    = new List <Task>();
            int          sum      = 0;
            string       lockName = "ProcessLockSameLockNameTest";

            for (int i = 0; i < 10000; i++)
            {
                Task t = Task.Run(async() => {
                    using (ILock pLock = processLockFactory.GetLock(lockName))
                    {
                        if (await pLock.WaitAsync())
                        {
                            sum++;
                        }
                    }
                });

                tasks.Add(t);
            }

            await Task.WhenAll(tasks.ToArray());

            Assert.AreEqual(10000, sum);
        }
Пример #3
0
        public void DistributeLockShouldTimeout()
        {
            ILockFactory processLockFactory = Init("Distribute").GetRequiredService <ILockFactory>();
            string       lockName           = "ProcessLockSameLockNameTest";
            bool         getLock            = true;
            List <Task>  tasks = new List <Task>();

            for (int i = 0; i < 2; i++)
            {
                Task t = Task.Run(() =>
                {
                    using (ILock pLock = processLockFactory.GetLock(lockName))
                    {
                        getLock = pLock.Wait(TimeSpan.FromSeconds(1));
                        if (getLock)
                        {
                            System.Threading.Thread.Sleep(3000);
                        }
                    }
                });

                tasks.Add(t);
            }

            Task.WaitAll(tasks.ToArray());
            Assert.IsFalse(getLock);

            using (ILock pLock = processLockFactory.GetLock(lockName))
            {
                getLock = pLock.Wait(TimeSpan.FromSeconds(3));
            }
            Assert.IsTrue(getLock);
        }
 public USBControlTransferCommand(
     IDenseDacEvalBoard evalBoard,
     ILockFactory lockFactory = null)
 {
     _evalBoard   = evalBoard;
     _lockFactory = lockFactory ?? new LockFactory();
 }
 public GetDeviceSymbolicNameCommand(
     IDenseDacEvalBoard evalBoard,
     ILockFactory lockFactory = null)
 {
     _evalBoard   = evalBoard;
     _lockFactory = lockFactory ?? new LockFactory();
 }
Пример #6
0
        public void DistributeLockShouldReleaseOnce()
        {
            ILockFactory processLockFactory = Init("Distribute").GetRequiredService <ILockFactory>();
            string       lockName           = "ProcessLockSameLockNameTest";
            bool         getLock            = true;
            List <Task>  tasks = new List <Task>();
            int          sum   = 0;

            for (int i = 0; i < 100; i++)
            {
                Task t = Task.Run(() =>
                {
                    using (ILock pLock = processLockFactory.GetLock(lockName))
                    {
                        getLock = pLock.Wait();
                        if (getLock)
                        {
                            sum++;
                        }
                        pLock.Release();
                    }
                });

                tasks.Add(t);
            }

            Task.WaitAll(tasks.ToArray());
            Assert.AreEqual(100, sum);
        }
Пример #7
0
 public SetCLRPinLowCommand(
     IDenseDacEvalBoard evalBoard,
     ISendDeviceCommand sendDeviceCommandCommand = null,
     ILockFactory lockFactory = null)
 {
     _sendDeviceCommandCommand = sendDeviceCommandCommand ?? new SendDeviceCommandCommand(evalBoard);
     _lockFactory = lockFactory ?? new LockFactory();
 }
 public DistributedCancellationProcessor(ILockFactory lockFactory, ILogger logger, ISubscriber redisSubscriber, DistributedCancellationConfiguration distributedCancellationConfiguration, IDatabaseAsync databaseAsync)
 {
     _lockFactory     = lockFactory;
     _logger          = logger;
     _redisSubscriber = redisSubscriber;
     _distributedCancellationConfiguration = distributedCancellationConfiguration;
     _databaseAsync = databaseAsync;
 }
 public GetDacChannelDataValueBCommand(
     IDenseDacEvalBoard evalBoard,
     IReadbackX1BRegister readbackX1BRegisterCommand = null,
     ILockFactory lockFactory = null)
 {
     _readbackX1BRegisterCommand = readbackX1BRegisterCommand ?? new ReadbackX1BRegisterCommand(evalBoard);
     _lockFactory = lockFactory ?? new LockFactory();
 }
Пример #10
0
 public JobBase(JobDefinition def, IJobService jobService, ILockFactory lockFactory, IACIService aciService, ILogger logger)
 {
     _def         = def;
     _jobs        = jobService;
     _lockFactory = lockFactory;
     _aciService  = aciService;
     Logger       = logger;
 }
Пример #11
0
 public SendSpecialFunctionCommand(
     IDenseDacEvalBoard evalBoard,
     ISendSPI sendSPICommand  = null,
     ILockFactory lockFactory = null)
 {
     _sendSPICommand = sendSPICommand ?? new SendSPICommand(evalBoard);
     _lockFactory    = lockFactory ?? new LockFactory();
 }
 public GetIsOverTemperatureCommand(
     IDenseDacEvalBoard evalBoard,
     IReadbackControlRegister readbackControlRegisterCommand = null,
     ILockFactory lockFactory = null)
 {
     _readbackControlRegisterCommand = readbackControlRegisterCommand ??
                                       new ReadbackControlRegisterCommand(evalBoard);
     _lockFactory = lockFactory ?? new LockFactory();
 }
        public TableLockConcurrencyManager()
        {
            // this.deadlockManagement = DeadlockManagementStrategies.DeadlockDetection;
            this.lockFactory = new DefaultLockFactory();

            this.tableLocks    = new Dictionary <ITable, ILock>();
            this.lockGraph     = new Graph <object>();
            this.lockInventory = new TransactionLockInventory();
        }
Пример #14
0
        public TableLockConcurrencyManager()
        {
            // this.deadlockManagement = DeadlockManagementStrategies.DeadlockDetection;
            this.lockFactory = new DefaultLockFactory();

            this.tableLocks = new Dictionary<ITable, ILock>();
            this.lockGraph = new Graph<object>();
            this.lockInventory = new TransactionLockInventory();
        }
Пример #15
0
 public LockMonitorController(LockView window, ILockFactory lockFactory)
 {
     _lockFactory = lockFactory;
     _mainWindow = window;
     _upperLevel = _mainWindow.upperLevel;
     _lowerLevel = _mainWindow.lowerLevel;
     _flowRate = _mainWindow.flowRate;
     _alarmMuter = _mainWindow.alarmMuter;
 }
 public GetThermalShutdownEnabledCommand(
     IDenseDacEvalBoard evalBoard,
     IReadbackControlRegister readbackControlRegisterCommand = null,
     ILockFactory lockFactory = null)
 {
     _readbackControlRegisterCommand = readbackControlRegisterCommand ??
                                       new ReadbackControlRegisterCommand(evalBoard);
     _lockFactory = lockFactory ?? new LockFactory();
 }
 public SetDacChannelDataSourceAllChannelsCommand(
     IDenseDacEvalBoard evalBoard,
     ISendSpecialFunction sendSpecialFunctionCommand = null,
     ILockFactory lockFactory = null)
 {
     _evalBoard = evalBoard;
     _sendSpecialFunctionCommand = sendSpecialFunctionCommand ?? new SendSpecialFunctionCommand(evalBoard);
     _lockFactory = lockFactory ?? new LockFactory();
 }
 public InitializeSPIPinsCommand(
     IDenseDacEvalBoard evalBoard,
     ISendDeviceCommand sendDeviceCommandCommand = null,
     ILockFactory lockFactory = null)
 {
     _evalBoard = evalBoard;
     _sendDeviceCommandCommand = sendDeviceCommandCommand ?? new SendDeviceCommandCommand(evalBoard);
     _lockFactory = lockFactory ?? new LockFactory();
 }
 public GetPacketErrorCheckErrorOccurredStatusCommand(
     IDenseDacEvalBoard evalBoard,
     IReadbackControlRegister readbackControlRegisterCommand = null,
     ILockFactory lockFactory = null)
 {
     _readbackControlRegisterCommand = readbackControlRegisterCommand ??
                                       new ReadbackControlRegisterCommand(evalBoard);
     _lockFactory = lockFactory ?? new LockFactory();
 }
Пример #20
0
 public ResetDeviceCommand(
     IDenseDacEvalBoard evalBoard,
     IUSBControlTransfer usbControlTransferCommand = null,
     ILockFactory lockFactory = null)
 {
     _evalBoard = evalBoard;
     _usbControlTransferCommand = usbControlTransferCommand ?? new USBControlTransferCommand(evalBoard);
     _lockFactory = lockFactory ?? new LockFactory();
 }
 public WriteOFS1RegisterCommand(
     IDenseDacEvalBoard evalBoard,
     ISendSpecialFunction sendSpecialFunctionCommand = null,
     ILockFactory lockFactory = null)
 {
     _evalBoard = evalBoard;
     _sendSpecialFunctionCommand = sendSpecialFunctionCommand ?? new SendSpecialFunctionCommand(evalBoard);
     _lockFactory = lockFactory ?? new LockFactory();
 }
 public LockingNonceStore(INonceStore decorated, ILockFactory lockFactory)
 {
     if (lockFactory == null)
     {
         throw new ArgumentNullException(nameof(lockFactory));
     }
     _decorated = decorated ?? throw new ArgumentNullException(nameof(decorated));
     _lock      = lockFactory.CreateLock();
 }
 public GetDacChannelDataSourceCommand(
     IDenseDacEvalBoard evalBoard,
     IReadbackABSelectRegisters readbackABSelectRegisterCommand = null,
     ILockFactory lockFactory = null
     )
 {
     _readbackABSelectRegisterCommand = readbackABSelectRegisterCommand ??
                                        new ReadbackABSelectRegisterCommand(evalBoard);
     _lockFactory = lockFactory ?? new LockFactory();
 }
 public UploadFirmwareCommand(
     IDenseDacEvalBoard evalBoard,
     IResetDevice resetDeviceCommand = null,
     IUSBControlTransfer usbControlTransferCommand = null,
     ILockFactory lockFactory = null)
 {
     _resetDeviceCommand        = resetDeviceCommand ?? new ResetDeviceCommand(evalBoard);
     _usbControlTransferCommand = usbControlTransferCommand ?? new USBControlTransferCommand(evalBoard);
     _lockFactory = lockFactory ?? new LockFactory();
 }
Пример #25
0
 public BackgroundWorkerBase(IJobService jobService, IJobRegistry jobRegistry, ILockFactory lockFactory, JobType type, ILogger logger)
 {
     _jobService  = jobService;
     _jobRegistry = jobRegistry;
     _lockFactory = lockFactory;
     _globalCancellationTokenSource = new CancellationTokenSource();
     _jobs       = new List <IJob>();
     _targetType = type;
     _logger     = logger;
 }
Пример #26
0
 public ReadSPICommand(
     IDenseDacEvalBoard evalBoard,
     IUSBControlTransfer usbControlTransferCommand = null,
     IInitializeSPIPins initializeSPIPinsCommand   = null,
     ILockFactory lockFactory = null)
 {
     _evalBoard = evalBoard;
     _usbControlTransferCommand = usbControlTransferCommand ?? new USBControlTransferCommand(evalBoard);
     _initializeSPIPinsCommand  = initializeSPIPinsCommand ?? new InitializeSPIPinsCommand(evalBoard);
     _lockFactory = lockFactory ?? new LockFactory();
 }
Пример #27
0
 public ToggleResetCommand(
     IDenseDacEvalBoard evalBoard,
     ILockFactory lockFactory = null,
     ISetRESETPinHigh setResetPinHighCommand = null,
     ISetRESETPinLow setResetPinLowCommand   = null)
 {
     _evalBoard              = evalBoard;
     _lockFactory            = lockFactory ?? new LockFactory();
     _setRESETPinHighCommand = setResetPinHighCommand ?? new SetRESETPinHighCommand(evalBoard);
     _setRESETPinLowCommand  = setResetPinLowCommand ?? new SetRESETPinLowCommand(evalBoard);
 }
 public ReadbackX1BRegisterCommand(
     IDenseDacEvalBoard evalBoard,
     ISendSpecialFunction sendSpecialFunctionCommand = null,
     IReadSPI readSPICommand  = null,
     ILockFactory lockFactory = null)
 {
     _evalBoard = evalBoard;
     _sendSpecialFunctionCommand = sendSpecialFunctionCommand ?? new SendSpecialFunctionCommand(evalBoard);
     _readSPICommand             = readSPICommand ?? new ReadSPICommand(evalBoard);
     _lockFactory = lockFactory ?? new LockFactory();
 }
 public PerformSoftPowerDownCommand(
     IDenseDacEvalBoard evalBoard,
     IReadbackControlRegister readbackControlRegisterCommand = null,
     IWriteControlRegister writeControlRegisterCommand       = null,
     ILockFactory lockFactory = null)
 {
     _evalBoard = evalBoard;
     _readbackControlRegisterCommand = readbackControlRegisterCommand ??
                                       new ReadbackControlRegisterCommand(evalBoard);
     _writeControlRegisterCommand = writeControlRegisterCommand ?? new WriteControlRegisterCommand(evalBoard);
     _lockFactory = lockFactory ?? new LockFactory();
 }
 public SetDacChannelGainCommand(
     IDenseDacEvalBoard evalBoard,
     ISendSPI sendSPICommand             = null,
     ISetCLRPinLow setCLRPinLowCommand   = null,
     ISetCLRPinHigh setCLRPinHighCommand = null,
     ILockFactory lockFactory            = null)
 {
     _evalBoard            = evalBoard;
     _sendSPICommand       = sendSPICommand ?? new SendSPICommand(evalBoard);
     _setCLRPinLowCommand  = setCLRPinLowCommand ?? new SetCLRPinLowCommand(evalBoard);
     _setCLRPinHighCommand = setCLRPinHighCommand ?? new SetCLRPinHighCommand(evalBoard);
     _lockFactory          = lockFactory ?? new LockFactory();
 }
 public SetDacChannelDataValueACommand(
     IDenseDacEvalBoard evalBoard,
     IReadbackControlRegister readbackControlRegisterCommand = null,
     IWriteControlRegister writeControlRegisterCommand       = null,
     ISendSPI sendSPICommand  = null,
     ILockFactory lockFactory = null)
 {
     _evalBoard = evalBoard;
     _readbackControlRegisterCommand = readbackControlRegisterCommand ??
                                       new ReadbackControlRegisterCommand(evalBoard);
     _writeControlRegisterCommand = writeControlRegisterCommand ?? new WriteControlRegisterCommand(evalBoard);
     _sendSPICommand = sendSPICommand ?? new SendSPICommand(evalBoard);
     _lockFactory    = lockFactory ?? new LockFactory();
 }
 public SetOffsetDAC0Command(
     IDenseDacEvalBoard evalBoard,
     ISetCLRPinLow setCLRPinLowCommand           = null,
     ISetCLRPinHigh setCLRPinHighCommand         = null,
     IWriteOFS0Register writeOFS0RegisterCommand = null,
     ILockFactory lockFactory = null
     )
 {
     _evalBoard                = evalBoard;
     _setCLRPinLowCommand      = setCLRPinLowCommand ?? new SetCLRPinLowCommand(evalBoard);
     _setCLRPinHighCommand     = setCLRPinHighCommand ?? new SetCLRPinHighCommand(evalBoard);
     _writeOFS0RegisterCommand = writeOFS0RegisterCommand ?? new WriteOFS0RegisterCommand(evalBoard);
     _lockFactory              = lockFactory ?? new LockFactory();
 }