From 1cb7633ff664098c041000f615fae5337e5a9d43 Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Sun, 27 Feb 2022 17:41:19 +0900 Subject: [PATCH] internal/ui: bug fix: atomic.Value.Store cannot be called when a differnet type value is already stored --- audio/internal/cbackend/player.go | 4 +++- internal/ui/context.go | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/audio/internal/cbackend/player.go b/audio/internal/cbackend/player.go index edf64e423..39f83582c 100644 --- a/audio/internal/cbackend/player.go +++ b/audio/internal/cbackend/player.go @@ -395,6 +395,8 @@ func (p *playerImpl) readSourceToBuffer() { } func (p *playerImpl) setErrorImpl(err error) { - p.err.Store(err) + if p.err.Load() == nil { + p.err.Store(err) + } p.closeImpl() } diff --git a/internal/ui/context.go b/internal/ui/context.go index d22c4ec00..7e5909aea 100644 --- a/internal/ui/context.go +++ b/internal/ui/context.go @@ -185,6 +185,9 @@ func (g *globalState) err() error { } func (g *globalState) setError(err error) { + if g.err_.Load() != nil { + return + } g.err_.Store(err) }