public void Exit() { try { CMonitor.Exit(mutex); } catch { } }
private void RestoreState() { CrestronLogger.DebugLevel = savedDebugLevel; CrestronLogger.LogOnlyCurrentDebugLevel = savedLogOnlyThisLevel; CrestronLogger.Mode = savedLoggerMode; CMonitor.Exit(lockObject); }
public ZKSignalTranslator(CMonitor monitor) { oldData = new CMonData(); this.monitor = monitor; monitor.RegMonitor(this); _examTOThread = new Thread(new ThreadStart(ExamTimeOut)); _stateTOThread = new Thread(new ThreadStart(StateTimeOut)); }
internal byte IncrementSequenceNumber() { byte bret; CMonitor.Enter(_txsequenceNumberLock); bret = _txsequenceNumber++; CMonitor.Exit(_txsequenceNumberLock); return(bret); }
private void SetState() { CMonitor.Enter(lockObject); savedDebugLevel = CrestronLogger.DebugLevel; savedLogOnlyThisLevel = CrestronLogger.LogOnlyCurrentDebugLevel; savedLoggerMode = CrestronLogger.Mode; CrestronLogger.DebugLevel = _debugLevel; CrestronLogger.LogOnlyCurrentDebugLevel = _logOnlyThisLevel; CrestronLogger.Mode = _loggerMode; }
/// <summary> /// Attempts to aquire a lock to access the section of code (non-blocking). /// (Note: You must check the returned LockToken in this case to ensure that /// the lock was actually aquired.) /// </summary> /// <returns>LockToken object</returns> public bool TryAquireLock(out LockToken lockToken) { if (CMonitor.TryEnter(_monitorObject)) { lockToken = new LockToken(this); return(true); } lockToken = default(LockToken); return(false); }
/// <summary> /// Aquire a lock and return the LockToken when the lock is aquired. /// </summary> /// <param name="waitTime">Amount of time to wait to aquire the lock in milliseconds</param> /// <returns>LockToken object</returns> public LockToken AquireLock(int waitTime) { var sw = Stopwatch.StartNew(); while (sw.ElapsedMilliseconds < waitTime) { if (CMonitor.TryEnter(_monitorObject)) { return(new LockToken(this)); } _delayEvent.Wait(100); } return(new LockToken(null)); }
private SocketErrorCodes SendDatagram(byte[] data, int len) { if (client == null) { return(SocketErrorCodes.SOCKET_NOT_CONNECTED); } CMonitor.Enter(_sendDatagramLock); SocketErrorCodes sret = client.SendData(data, len, remoteEndpoint); CMonitor.Exit(_sendDatagramLock); if (sret != SocketErrorCodes.SOCKET_OK) { ErrorLog.Error("SendDatagram: {0}", sret.ToString()); } return(sret); }
internal void ResetSequenceNumber() { CMonitor.Enter(_txsequenceNumberLock); _txsequenceNumber = 0x00; CMonitor.Exit(_txsequenceNumberLock); }
internal void DecrementSingleSequenceNumber() { CMonitor.Enter(_txsequenceNumberLock); _txsequenceNumber--; CMonitor.Exit(_txsequenceNumberLock); }
public void Enter() { CMonitor.Enter(mutex); }
public void Exit() { CMonitor.Exit(mutex); }
public bool TryEnter() { return(CMonitor.TryEnter(mutex)); }
/// <summary> /// Manually release the lock. /// (Note: This is done automatically when the LockToken is disposed) /// </summary> public void ReleaseLock() { CMonitor.Exit(_monitorObject); }
/// <summary> /// Aquire a lock and return the LockToken when the lock is aquired. /// </summary> /// <returns>LockToken object</returns> public LockToken AquireLock() { CMonitor.Enter(_monitorObject); return(new LockToken(this)); }