private void TransitStatus(SCPChannelStatus newStatus) { _channelStatus = newStatus; Monitor.PulseAll(StatusChangeNotifier); if (_statusChangeHandler != null) { _statusChangeHandler(newStatus); } }
private void TransitStatus(SCPChannelStatus newStatus) { lock (_statusSync) { _channelStatus = newStatus; Monitor.PulseAll(_statusSync); } if (_statusChangeHandler != null) { _statusChangeHandler(newStatus); } }
public bool WaitStatus(SCPChannelStatus status, int millisecondsTimeout) { lock (_statusSync) { while (_channelStatus != status) { bool acquired = Monitor.Wait(_statusSync, millisecondsTimeout); if (!acquired) { return(false); } } return(true); } }
private void OnChannelStatusChanged(SCPChannelStatus newStatus) { if (newStatus == SCPChannelStatus.CLOSED) { lock (_statusSync) { _status = StreamStatus.Closed; } lock (_bufferSync) { Monitor.PulseAll(_bufferSync); } } else if (newStatus == SCPChannelStatus.ERROR) { lock (_statusSync) { _status = StreamStatus.Error; } lock (_bufferSync) { Monitor.PulseAll(_bufferSync); } } }
private void TransitStatus(SCPChannelStatus newStatus) { _channelStatus = newStatus; Monitor.PulseAll(StatusChangeNotifier); if (_statusChangeHandler != null) _statusChangeHandler(newStatus); }
public bool WaitStatus(SCPChannelStatus status, int millisecondsTimeout) { lock (_statusSync) { while (_channelStatus != status) { bool acquired = Monitor.Wait(_statusSync, millisecondsTimeout); if (!acquired) { return false; } } return true; } }