From b47ed470d51e6130176ec8fb66aa4f3a90b97ccd Mon Sep 17 00:00:00 2001 From: Le Yao Date: Fri, 9 Jul 2021 05:50:17 +0000 Subject: [PATCH] Fix go sync null pointer bug Signed-off-by: Le Yao Change-Id: I6e422a502be3ab10786cc72df9e363625d9c209f --- platform/crd-ctrlr/src/controllers/cnfstatus_controller.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/platform/crd-ctrlr/src/controllers/cnfstatus_controller.go b/platform/crd-ctrlr/src/controllers/cnfstatus_controller.go index f1f5ad5..4a66cae 100644 --- a/platform/crd-ctrlr/src/controllers/cnfstatus_controller.go +++ b/platform/crd-ctrlr/src/controllers/cnfstatus_controller.go @@ -174,16 +174,20 @@ func (r *SdewanCNFStatusController) query() { } else { // ececute registered actions r.mux.Lock() - for _, cs := range *cnf_status { - if r.actions[cs.Name] != nil { - go func() { - err := r.actions[cs.Name].Execute(clientInfo, cs.Status) + var wg sync.WaitGroup + for i, _ := range *cnf_status { + if r.actions[(*cnf_status)[i].Name] != nil { + wg.Add(1) + go func(index int) { + defer wg.Done() + err := r.actions[(*cnf_status)[index].Name].Execute(clientInfo, (*cnf_status)[index].Status) if err != nil { r.Log.Info(err.Error()) } - }() + }(i) } } + wg.Wait() r.mux.Unlock() p_data, _ := json.Marshal(cnf_status) -- 2.16.6