Fix locking in DMaaP Mediator Producer 95/6995/1
authorelinuxhenrik <henrik.b.andersson@est.tech>
Fri, 5 Nov 2021 07:00:12 +0000 (08:00 +0100)
committerelinuxhenrik <henrik.b.andersson@est.tech>
Fri, 5 Nov 2021 07:00:17 +0000 (08:00 +0100)
Issue-ID: NONRTRIC-631
Signed-off-by: elinuxhenrik <henrik.b.andersson@est.tech>
Change-Id: I38d2255be7f180a10559152c385ee88fc8471ce4

dmaap-mediator-producer/internal/jobs/jobs.go

index b856e29..1c42942 100644 (file)
@@ -182,8 +182,6 @@ func (jh *jobHandler) start(mRAddress string) {
 }
 
 func (jh *jobHandler) pollAndDistributeMessages(mRAddress string) {
-       jh.mu.Lock()
-       defer jh.mu.Unlock()
        log.Debugf("Processing jobs for type: %v", jh.typeId)
        messagesBody, error := restclient.Get(mRAddress+jh.topicUrl, jh.pollClient)
        if error != nil {
@@ -195,6 +193,8 @@ func (jh *jobHandler) pollAndDistributeMessages(mRAddress string) {
 
 func (jh *jobHandler) distributeMessages(messages []byte) {
        if len(messages) > 2 {
+               jh.mu.Lock()
+               defer jh.mu.Unlock()
                for _, jobInfo := range jh.jobs {
                        go jh.sendMessagesToConsumer(messages, jobInfo)
                }