private async ValueTask <int> ChoosePartitions(MessageMetadata metadata, CancellationToken cancellationToken) { if (_producerCount == 0) { _ = await _state.StateChangedFrom(ProducerState.Disconnected, cancellationToken).ConfigureAwait(false); if (_throw is not null) { throw _throw; } } if (_producerCount == 1) { return(0); } return(_messageRouter.ChoosePartition(metadata, _producerCount)); }