public void Dispose() { _appChannel.Dispose(); _opChannel.Dispose(); _appReader.Close(); _opReader.Close(); }
//========================================= // Stoppable //========================================= public override void Stop() { if (_cancellable != null) { _cancellable.Cancel(); _cancellable = null; } _reader?.Close(); base.Stop(); }
//========================================= // Startable //========================================= public override void Start() { if (IsStopped) { return; } Logger.Debug($"Inbound stream listening: for '{_reader.Name}'"); try { _reader.OpenFor(this); } catch (Exception e) { _reader.Close(); Logger.Error("OpenFor failed", e); throw new InvalidOperationException(e.Message, e); } _cancellable = Stage.Scheduler.Schedule(SelfAs <IScheduled <object?> >(), null, TimeSpan.FromMilliseconds(1000), TimeSpan.FromMilliseconds(_probeInterval)); }
public void Dispose() { _channelWriter.Close(); _channelReader.Close(); }