Fixed concurrent access

This commit is contained in:
Eduard Urbach 2017-11-24 15:14:29 +01:00
parent 49791a836e
commit 85a26a5c5b
3 changed files with 9 additions and 0 deletions

View File

@ -53,6 +53,7 @@ func Get(ctx *aero.Context) string {
}
animeList = animeList.Watching()
animeList.Lock()
for _, item := range animeList.Items {
futureEpisodes := item.Anime().UpcomingEpisodes()
@ -64,6 +65,8 @@ func Get(ctx *aero.Context) string {
upcomingEpisodes = append(upcomingEpisodes, futureEpisodes...)
}
animeList.Unlock()
sort.Slice(upcomingEpisodes, func(i, j int) bool {
return upcomingEpisodes[i].Episode.AiringDate.Start < upcomingEpisodes[j].Episode.AiringDate.Start
})

View File

@ -39,6 +39,9 @@ func Profile(ctx *aero.Context, viewUser *arn.User) string {
animeList = viewUser.AnimeList()
// Sort by rating
animeList.Lock()
defer animeList.Unlock()
sort.Slice(animeList.Items, func(i, j int) bool {
return animeList.Items[i].Rating.Overall > animeList.Items[j].Rating.Overall
})

View File

@ -33,6 +33,9 @@ func GetStatsByUser(ctx *aero.Context) string {
return ctx.Error(http.StatusInternalServerError, "Anime list not found", err)
}
animeList.Lock()
defer animeList.Unlock()
for _, item := range animeList.Items {
currentWatch := item.Episodes * item.Anime().EpisodeLength
reWatch := item.RewatchCount * item.Anime().EpisodeCount * item.Anime().EpisodeLength