//====================================
        // internal implementation
        //====================================

        public void ProbeChannel()
        {
            try
            {
                Accept();

                foreach (var clientReadChannel in _clientReadChannels.ToArray())
                {
                    if (clientReadChannel.Available > 0)
                    {
                        _socketChannelSelectionReader.Read(clientReadChannel, new RawMessageBuilder(_maxMessageSize));
                    }

                    if (!clientReadChannel.IsSocketConnected())
                    {
                        clientReadChannel.Close();
                        _clientReadChannels.Remove(clientReadChannel);
                    }
                }
            }
            catch (Exception e)
            {
                Logger.Error($"Failed to read channel selector for: '{_name}' because: {e.Message}", e);
            }
        }
    //====================================
    // internal implementation
    //====================================

    public void ProbeChannel()
    {
        try
        {
            Accept();

            foreach (var clientReadChannel in _clientReadChannels.ToArray())
            {
                if (clientReadChannel.Available > 0)
                {
                    _logger.Debug("Multicast publisher reader reading on client channel");
                    _socketChannelSelectionReader.Read(clientReadChannel, new RawMessageBuilder(_maxMessageSize));
                }
            }
        }
        catch (Exception e)
        {
            Logger.Error($"Failed to read channel selector for: '{_name}' because: {e.Message}", e);
        }
    }