async Task Receiver(CancellationToken stopTokenSource, IPipe <ConnectionContext> connectionPipe)
        {
            await Repeat.UntilCancelled(stopTokenSource, async() =>
            {
                if (_log.IsDebugEnabled)
                {
                    _log.DebugFormat("Connecting receive transport: {0}", _host.Settings.GetInputAddress(_settings.QueueDescription));
                }

                try
                {
                    var context = new ServiceBusConnectionContext(_host, stopTokenSource);

                    await connectionPipe.Send(context);
                }
                catch (TaskCanceledException)
                {
                }
                catch (Exception ex)
                {
                    if (_log.IsErrorEnabled)
                    {
                        _log.ErrorFormat("Azure Service Bus connection failed: {0}", ex.Message);
                    }
                }
            });
        }
        async void Receiver(TaskSupervisor supervisor, IPipe <ConnectionContext> connectionPipe)
        {
            await _connectionRetryPolicy.RetryUntilCancelled(async() =>
            {
                if (_log.IsDebugEnabled)
                {
                    _log.DebugFormat("Connecting receive transport: {0}", _host.Settings.GetInputAddress(_settings.QueueDescription));
                }

                var context = new ServiceBusConnectionContext(_host, supervisor.StopToken);

                try
                {
                    await connectionPipe.Send(context).ConfigureAwait(false);
                }
                catch (TaskCanceledException)
                {
                }
                catch (Exception ex)
                {
                    if (_log.IsErrorEnabled)
                    {
                        _log.ErrorFormat("Azure Service Bus connection failed: {0}", ex.Message);
                    }

                    var inputAddress = context.GetQueueAddress(_settings.QueueDescription);

                    await _endpointObservers.Faulted(new Faulted(inputAddress, ex)).ConfigureAwait(false);
                }
            }, supervisor.StoppingToken).ConfigureAwait(false);
        }
        async Task Receiver(CancellationToken stopTokenSource, IPipe<ConnectionContext> connectionPipe)
        {
            await Repeat.UntilCancelled(stopTokenSource, async () =>
            {
                if (_log.IsDebugEnabled)
                    _log.DebugFormat("Connecting receive transport: {0}", _host.Settings.GetInputAddress(_settings.QueueDescription));

                var context = new ServiceBusConnectionContext(_host, stopTokenSource);

                try
                {
                    await connectionPipe.Send(context).ConfigureAwait(false);
                }
                catch (TaskCanceledException)
                {
                }
                catch (Exception ex)
                {
                    if (_log.IsErrorEnabled)
                        _log.ErrorFormat("Azure Service Bus connection failed: {0}", ex.Message);

                    Uri inputAddress = context.GetQueueAddress(_settings.QueueDescription);

                    await _endpointObservers.Faulted(new Faulted(inputAddress, ex));
                }
            }).ConfigureAwait(false);
        }
        async void Receiver(IPipe<ConnectionContext> connectionPipe, TaskSupervisor supervisor)
        {
            try
            {
                await _connectionRetryPolicy.RetryUntilCancelled(async () =>
                {
                    if (_log.IsDebugEnabled)
                        _log.DebugFormat("Connecting receive transport: {0}", _host.Settings.GetInputAddress(_settings.QueueDescription));

                    var context = new ServiceBusConnectionContext(_host, supervisor.StoppedToken);

                    try
                    {
                        await connectionPipe.Send(context).ConfigureAwait(false);
                    }
                    catch (TaskCanceledException)
                    {
                    }
                    catch (Exception ex)
                    {
                        if (_log.IsErrorEnabled)
                            _log.ErrorFormat("Azure Service Bus connection failed: {0}", ex.Message);

                        var inputAddress = context.GetQueueAddress(_settings.QueueDescription);

                        await _endpointObservers.Faulted(new Faulted(inputAddress, ex)).ConfigureAwait(false);
                    }
                }, supervisor.StoppingToken).ConfigureAwait(false);
            }
            catch (TaskCanceledException)
            {
            }
        }