Commit cc0e9bf2 authored by Fernando Takagi's avatar Fernando Takagi
Browse files

Change to safer locking on tournament end callback

parent 2a6cdf9c
Loading
Loading
Loading
Loading
+13 −12
Original line number Diff line number Diff line
@@ -452,18 +452,19 @@ WHERE id = $1`
					continue
				}

				func() {
					callback.leaderboard.Lock()
					defer callback.leaderboard.Unlock()
					if callback.leaderboard.EndCallbackInvoked {
					callback.leaderboard.Unlock()
						// already activated once
					continue
						return
					}
					// fnTournamentEnd cannot be nil here, if it was the callback would not be queued at all.
					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.Unlock()
				}()
			}
		}
	}