This is an automated email from the ASF dual-hosted git repository.

lizhimin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git


The following commit(s) were added to refs/heads/master by this push:
     new 7da326f2 [ISSUE #811] [Golang] should not copy sync.Map in 
loadBalancer (#810)
7da326f2 is described below

commit 7da326f284d73fe95f47af03ec22288ef7897aa4
Author: Vincent Lee <[email protected]>
AuthorDate: Wed Jun 4 17:55:45 2025 +0800

    [ISSUE #811] [Golang] should not copy sync.Map in loadBalancer (#810)
---
 golang/loadBalancer.go | 4 ++--
 golang/producer.go     | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/golang/loadBalancer.go b/golang/loadBalancer.go
index dd94b4f0..0c7ad506 100644
--- a/golang/loadBalancer.go
+++ b/golang/loadBalancer.go
@@ -31,7 +31,7 @@ import (
 
 type PublishingLoadBalancer interface {
        TakeMessageQueueByMessageGroup(messageGroup *string) 
([]*v2.MessageQueue, error)
-       TakeMessageQueues(excluded sync.Map, count int) ([]*v2.MessageQueue, 
error)
+       TakeMessageQueues(excluded *sync.Map, count int) ([]*v2.MessageQueue, 
error)
        CopyAndUpdate([]*v2.MessageQueue) PublishingLoadBalancer
 }
 
@@ -64,7 +64,7 @@ func (plb *publishingLoadBalancer) 
TakeMessageQueueByMessageGroup(messageGroup *
        }, nil
 }
 
-func (plb *publishingLoadBalancer) TakeMessageQueues(excluded sync.Map, count 
int) ([]*v2.MessageQueue, error) {
+func (plb *publishingLoadBalancer) TakeMessageQueues(excluded *sync.Map, count 
int) ([]*v2.MessageQueue, error) {
        if len(plb.messageQueues) == 0 {
                return nil, fmt.Errorf("messageQueues is empty")
        }
diff --git a/golang/producer.go b/golang/producer.go
index 3e878a93..5f0a355d 100644
--- a/golang/producer.go
+++ b/golang/producer.go
@@ -79,7 +79,7 @@ func (p *defaultProducer) wrapHeartbeatRequest() 
*v2.HeartbeatRequest {
 }
 
 func (p *defaultProducer) takeMessageQueues(plb PublishingLoadBalancer) 
([]*v2.MessageQueue, error) {
-       return plb.TakeMessageQueues(p.isolated, p.getRetryMaxAttempts())
+       return plb.TakeMessageQueues(&p.isolated, p.getRetryMaxAttempts())
 }
 
 func (p *defaultProducer) getPublishingTopicRouteResult(ctx context.Context, 
topic string) (PublishingLoadBalancer, error) {

Reply via email to