From 1b1147e422aaa83c33e542c58c7649ceef18b030 Mon Sep 17 00:00:00 2001 From: RandomChars <random@chars.jp> Date: Thu, 23 Sep 2021 12:55:50 +0900 Subject: [PATCH] move locking of tag after fetching tag info --- store/tag.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/store/tag.go b/store/tag.go index 580cd12..1e92630 100644 --- a/store/tag.go +++ b/store/tag.go @@ -125,15 +125,12 @@ func (s *Store) TagInfo(tag string) Tag { return Tag{} } -// TagType sets type of a tag. +// TagType sets type of tag. func (s *Store) TagType(tag, t string) { if !nameRegex.MatchString(tag) || !s.file(s.TagMetadataPath(tag)) { return } - s.getLock("tag_" + tag).Lock() - defer s.getLock("tag_" + tag).Unlock() - if t != ArtistType && t != CharacterType && t != CopyrightType && @@ -144,6 +141,10 @@ func (s *Store) TagType(tag, t string) { return } info := s.TagInfo(tag) + + s.getLock("tag_" + tag).Lock() + defer s.getLock("tag_" + tag).Unlock() + info.Type = t if payload, err := json.Marshal(info); err != nil { s.fatalClose(fmt.Sprintf("Error updating tag %s metadata, %s", tag, err)) -- GitLab