nandi/gleanpublic Fork 0
38f3385
Commits
Clone
git clone https://git.rickub.com/nandi/glean.git
git clone ssh://git@rickub.com/nandi/glean.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Fix data race in subscription countUnverified

Julien Robert committed 2026-05-17T23:55:35+02:00 Browse files
38f3385 parent: 422e1d0
modified internal/server/dashboard_handler.go +12 -16
@@ -76,26 +76,22 @@ func (s *Server) handleDashboard(w http.ResponseWriter, r *http.Request) {
7676 return err
7777 })
7878
79- if subCount == 0 {
80- g.Go(func() error {
81- var err error
82- globalTrending, err = s.engine.GetGlobalTrending(gCtx, user.DID, 5, 0)
83- return err
84- })
85- } else {
86- g.Go(func() error {
87- var err error
88- personalTrending, err = s.engine.GetPersonalTrending(gCtx, user.DID, userLangs, 5, 0)
89- return err
90- })
91- }
92-
9379 if err := g.Wait(); err != nil {
9480 s.logger.Warn("dashboard error", "error", err, "did", user.DID)
9581 }
9682
97- if subCount > 0 {
98- var err error
83+ var err error
84+ if subCount == 0 {
85+ globalTrending, err = s.engine.GetGlobalTrending(gCtx, user.DID, 5, 0)
86+ if err != nil {
87+ s.logger.Warn("failed to get global trending", "error", err, "did", user.DID)
88+ }
89+ } else {
90+ personalTrending, err = s.engine.GetPersonalTrending(gCtx, user.DID, userLangs, 5, 0)
91+ if err != nil {
92+ s.logger.Warn("failed to get personal trending", "error", err, "did", user.DID)
93+ }
94+
9995 articleRecs, err = s.engine.GetArticleRecommendations(ctx, user.DID, userLangs, 5)
10096 if err != nil {
10197 s.logger.Warn("failed to get article recommendations", "error", err, "did", user.DID)
@@ -76,26 +76,22 @@ func (s *Server) handleDashboard(w http.ResponseWriter, r *http.Request) {
76 return err76 return err
77 })77 })
78 78
79- if subCount == 0 {
80- g.Go(func() error {
81- var err error
82- globalTrending, err = s.engine.GetGlobalTrending(gCtx, user.DID, 5, 0)
83- return err
84- })
85- } else {
86- g.Go(func() error {
87- var err error
88- personalTrending, err = s.engine.GetPersonalTrending(gCtx, user.DID, userLangs, 5, 0)
89- return err
90- })
91- }
92-
93 if err := g.Wait(); err != nil {79 if err := g.Wait(); err != nil {
94 s.logger.Warn("dashboard error", "error", err, "did", user.DID)80 s.logger.Warn("dashboard error", "error", err, "did", user.DID)
95 }81 }
96 82
97- if subCount > 0 {83+ var err error
98- var err error84+ if subCount == 0 {
85+ globalTrending, err = s.engine.GetGlobalTrending(gCtx, user.DID, 5, 0)
86+ if err != nil {
87+ s.logger.Warn("failed to get global trending", "error", err, "did", user.DID)
88+ }
89+ } else {
90+ personalTrending, err = s.engine.GetPersonalTrending(gCtx, user.DID, userLangs, 5, 0)
91+ if err != nil {
92+ s.logger.Warn("failed to get personal trending", "error", err, "did", user.DID)
93+ }
94+
99 articleRecs, err = s.engine.GetArticleRecommendations(ctx, user.DID, userLangs, 5)95 articleRecs, err = s.engine.GetArticleRecommendations(ctx, user.DID, userLangs, 5)
100 if err != nil {96 if err != nil {
101 s.logger.Warn("failed to get article recommendations", "error", err, "did", user.DID)97 s.logger.Warn("failed to get article recommendations", "error", err, "did", user.DID)