@@ -222,12 +222,11 @@ void ClientImpl::handleCreateProducer(const Result result, const LookupDataResul
222222void ClientImpl::handleProducerCreated (Result result, ProducerImplBaseWeakPtr producerBaseWeakPtr,
223223 CreateProducerCallback callback, ProducerImplBasePtr producer) {
224224 if (result == ResultOk) {
225- auto pair = producers_. emplace ( producer.get (), producer );
226- if (!pair. second ) {
227- auto existingProducer = pair. first -> second . lock ();
225+ auto address = producer.get ();
226+ auto existingProducer = producers_. create (address, producer);
227+ if (existingProducer) {
228228 LOG_ERROR (" Unexpected existing producer at the same address: "
229- << pair.first ->first << " , producer: "
230- << (existingProducer ? existingProducer->getProducerName () : " (null)" ));
229+ << address << " , producer: " << existingProducer.value ().lock ()->getProducerName ());
231230 callback (ResultUnknownError, {});
232231 return ;
233232 }
@@ -311,12 +310,11 @@ void ClientImpl::handleReaderMetadataLookup(const Result result, const LookupDat
311310 reader->start (startMessageId, [this , self](const ConsumerImplBaseWeakPtr& weakConsumerPtr) {
312311 auto consumer = weakConsumerPtr.lock ();
313312 if (consumer) {
314- auto pair = consumers_. emplace ( consumer.get (), consumer );
315- if (!pair. second ) {
316- auto existingConsumer = pair. first -> second . lock ();
313+ auto address = consumer.get ();
314+ auto existingConsumer = consumers_. create (address, consumer);
315+ if (existingConsumer) {
317316 LOG_ERROR (" Unexpected existing consumer at the same address: "
318- << pair.first ->first
319- << " , consumer: " << (existingConsumer ? existingConsumer->getName () : " (null)" ));
317+ << address << " , consumer: " << existingConsumer.value ().lock ()->getName ());
320318 }
321319 } else {
322320 LOG_ERROR (" Unexpected case: the consumer is somehow expired" );
@@ -512,12 +510,11 @@ void ClientImpl::handleSubscribe(const Result result, const LookupDataResultPtr
512510void ClientImpl::handleConsumerCreated (Result result, ConsumerImplBaseWeakPtr consumerImplBaseWeakPtr,
513511 SubscribeCallback callback, ConsumerImplBasePtr consumer) {
514512 if (result == ResultOk) {
515- auto pair = consumers_. emplace ( consumer.get (), consumer );
516- if (!pair. second ) {
517- auto existingConsumer = pair. first -> second . lock ();
513+ auto address = consumer.get ();
514+ auto existingConsumer = consumers_. create (address, consumer);
515+ if (existingConsumer) {
518516 LOG_ERROR (" Unexpected existing consumer at the same address: "
519- << pair.first ->first
520- << " , consumer: " << (existingConsumer ? existingConsumer->getName () : " (null)" ));
517+ << address << " , consumer: " << existingConsumer.value ().lock ()->getName ());
521518 callback (ResultUnknownError, {});
522519 return ;
523520 }
0 commit comments