Commit 5cfcac45 authored by Fernando Takagi's avatar Fernando Takagi
Browse files

Change better encapsulation for mutable state

parent cc0e9bf2
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ const (
)

type Leaderboard struct {
	sync.Mutex         // Guarding EndCallbackInvoked
	mu sync.Mutex         // Guarding endCallbackInvoked
	Id                 string
	Authoritative      bool
	SortOrder          int
@@ -61,7 +61,7 @@ type Leaderboard struct {
	MaxNumScore        int
	Title              string
	StartTime          int64
	EndCallbackInvoked bool
	endCallbackInvoked bool
}

func (l *Leaderboard) IsTournament() bool {
+4 −4
Original line number Diff line number Diff line
@@ -453,9 +453,9 @@ WHERE id = $1`
				}

				func() {
					callback.leaderboard.Lock()
					defer callback.leaderboard.Unlock()
					if callback.leaderboard.EndCallbackInvoked {
					callback.leaderboard.mu.Lock()
					defer callback.leaderboard.mu.Unlock()
					if callback.leaderboard.endCallbackInvoked {
						// already activated once
						return
					}
@@ -463,7 +463,7 @@ WHERE id = $1`
					if err := ls.fnTournamentEnd(ls.ctx, tournament, int64(tournament.EndActive), int64(tournament.NextReset)); err != nil {
						ls.logger.Warn("Failed to invoke tournament end callback", zap.Error(err))
					}
					callback.leaderboard.EndCallbackInvoked = true
					callback.leaderboard.endCallbackInvoked = true
				}()
			}
		}