You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@answer.apache.org by li...@apache.org on 2026/07/10 02:19:59 UTC
(answer) 13/25: fix: update goroutine handling and context imports for consistency
This is an automated email from the ASF dual-hosted git repository.
LinkinStars pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/answer.git
commit a00cb2d38c018187ca73d409400f3c0c8f15294c
Author: LinkinStars <li...@foxmail.com>
AuthorDate: Tue Jul 7 16:26:45 2026 +0800
fix: update goroutine handling and context imports for consistency
---
go.mod | 2 +-
internal/base/queue/queue.go | 6 ++----
internal/base/queue/queue_test.go | 6 ++----
internal/controller/template_render/tags.go | 3 ++-
internal/controller/template_render/userinfo.go | 3 ++-
internal/service/content/question_service.go | 2 +-
internal/service/export/email_service.go | 2 +-
internal/service/report/report_service.go | 2 +-
.../user_external_login_service.go | 19 +++++++------------
9 files changed, 19 insertions(+), 26 deletions(-)
diff --git a/go.mod b/go.mod
index 7b68c180..5787c8b1 100644
--- a/go.mod
+++ b/go.mod
@@ -64,7 +64,6 @@ require (
go.uber.org/mock v0.6.0
golang.org/x/crypto v0.53.0
golang.org/x/image v0.20.0
- golang.org/x/net v0.56.0
golang.org/x/term v0.44.0
golang.org/x/text v0.39.0
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
@@ -171,6 +170,7 @@ require (
go.uber.org/zap v1.27.0 // indirect
golang.org/x/arch v0.10.0 // indirect
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect
+ golang.org/x/net v0.56.0 // indirect
golang.org/x/sys v0.46.0 // indirect
golang.org/x/tools v0.47.0 // indirect
google.golang.org/protobuf v1.34.2 // indirect
diff --git a/internal/base/queue/queue.go b/internal/base/queue/queue.go
index b3a8757a..4389c292 100644
--- a/internal/base/queue/queue.go
+++ b/internal/base/queue/queue.go
@@ -102,13 +102,11 @@ func (q *Queue[T]) Close() {
// startWorker starts the background goroutine that processes messages.
func (q *Queue[T]) startWorker() {
- q.wg.Add(1)
- go func() {
- defer q.wg.Done()
+ q.wg.Go(func() {
for msg := range q.queue {
q.processMessage(msg)
}
- }()
+ })
}
// processMessage handles a single message with proper synchronization.
diff --git a/internal/base/queue/queue_test.go b/internal/base/queue/queue_test.go
index 23f0fda7..b84cbde0 100644
--- a/internal/base/queue/queue_test.go
+++ b/internal/base/queue/queue_test.go
@@ -200,13 +200,11 @@ func TestQueue_ConcurrentRegisterHandler(t *testing.T) {
// Concurrently register handlers - should not race
var wg sync.WaitGroup
for range 10 {
- wg.Add(1)
- go func() {
- defer wg.Done()
+ wg.Go(func() {
q.RegisterHandler(func(ctx context.Context, msg *testMessage) error {
return nil
})
- }()
+ })
}
wg.Wait()
}
diff --git a/internal/controller/template_render/tags.go b/internal/controller/template_render/tags.go
index 6a6dacc9..d7798c63 100644
--- a/internal/controller/template_render/tags.go
+++ b/internal/controller/template_render/tags.go
@@ -20,10 +20,11 @@
package templaterender
import (
+ "context"
+
"github.com/apache/answer/internal/base/pager"
"github.com/apache/answer/internal/schema"
"github.com/jinzhu/copier"
- "golang.org/x/net/context"
)
func (q *TemplateRenderController) TagList(ctx context.Context, req *schema.GetTagWithPageReq) (resp *pager.PageModel, err error) {
diff --git a/internal/controller/template_render/userinfo.go b/internal/controller/template_render/userinfo.go
index 1734f65c..eb4fb91c 100644
--- a/internal/controller/template_render/userinfo.go
+++ b/internal/controller/template_render/userinfo.go
@@ -20,8 +20,9 @@
package templaterender
import (
+ "context"
+
"github.com/apache/answer/internal/schema"
- "golang.org/x/net/context"
)
func (q *TemplateRenderController) UserInfo(ctx context.Context, req *schema.GetOtherUserInfoByUsernameReq) (resp *schema.GetOtherUserInfoByUsernameResp, err error) {
diff --git a/internal/service/content/question_service.go b/internal/service/content/question_service.go
index 474c1fcd..73f66a4c 100644
--- a/internal/service/content/question_service.go
+++ b/internal/service/content/question_service.go
@@ -20,6 +20,7 @@
package content
import (
+ "context"
"encoding/json"
"fmt"
"strings"
@@ -64,7 +65,6 @@ import (
"github.com/jinzhu/copier"
"github.com/segmentfault/pacman/errors"
"github.com/segmentfault/pacman/log"
- "golang.org/x/net/context"
)
// QuestionRepo question repository
diff --git a/internal/service/export/email_service.go b/internal/service/export/email_service.go
index bb00b828..5b649354 100644
--- a/internal/service/export/email_service.go
+++ b/internal/service/export/email_service.go
@@ -20,6 +20,7 @@
package export
import (
+ "context"
"crypto/tls"
"encoding/json"
"fmt"
@@ -40,7 +41,6 @@ import (
"github.com/apache/answer/internal/service/siteinfo_common"
"github.com/segmentfault/pacman/errors"
"github.com/segmentfault/pacman/log"
- "golang.org/x/net/context"
"gopkg.in/gomail.v2"
)
diff --git a/internal/service/report/report_service.go b/internal/service/report/report_service.go
index 84c15d59..3edbc1b4 100644
--- a/internal/service/report/report_service.go
+++ b/internal/service/report/report_service.go
@@ -20,6 +20,7 @@
package report
import (
+ "context"
"encoding/json"
"github.com/apache/answer/internal/service/eventqueue"
@@ -44,7 +45,6 @@ import (
"github.com/jinzhu/copier"
"github.com/segmentfault/pacman/errors"
"github.com/segmentfault/pacman/log"
- "golang.org/x/net/context"
)
// ReportService user service
diff --git a/internal/service/user_external_login/user_external_login_service.go b/internal/service/user_external_login/user_external_login_service.go
index 2d209dbb..08f17ad4 100644
--- a/internal/service/user_external_login/user_external_login_service.go
+++ b/internal/service/user_external_login/user_external_login_service.go
@@ -186,18 +186,16 @@ func (us *UserExternalLoginService) ExternalLogin(
}, nil
}
- oldUserInfo, exist, err := us.userRepo.GetByEmail(ctx, externalUserInfo.Email)
- if err != nil {
+ if _, exist, err := us.userRepo.GetByEmail(ctx, externalUserInfo.Email); err != nil {
return nil, err
- }
- if exist {
+ } else if exist {
return &schema.UserExternalLoginResp{
ErrTitle: translator.Tr(handler.GetLangByCtx(ctx), reason.UserAccessDenied),
ErrMsg: translator.Tr(handler.GetLangByCtx(ctx), reason.UserAccessDenied),
}, nil
}
// if user is not a member, register a new user
- oldUserInfo, err = us.registerNewUser(ctx, externalUserInfo)
+ oldUserInfo, err := us.registerNewUser(ctx, externalUserInfo)
if err != nil {
return nil, err
}
@@ -363,21 +361,18 @@ func (us *UserExternalLoginService) ExternalLoginBindingUserSendEmail(
return &schema.ExternalLoginBindingUserSendEmailResp{}, nil
}
- userInfo, exist, err := us.userRepo.GetByEmail(ctx, req.Email)
- if err != nil {
+ if _, exist, err := us.userRepo.GetByEmail(ctx, req.Email); err != nil {
return nil, err
- }
- if exist && !req.Must {
+ } else if exist && !req.Must {
resp.EmailExistAndMustBeConfirmed = true
return resp, nil
- }
- if exist {
+ } else if exist {
resp.EmailExistAndMustBeConfirmed = true
return resp, nil
}
externalLoginInfo.Email = req.Email
- userInfo, err = us.registerNewUser(ctx, externalLoginInfo)
+ userInfo, err := us.registerNewUser(ctx, externalLoginInfo)
if err != nil {
return nil, err
}