commit 92f89c6b16fa2656cefa41ccefd9fce021eafb81
parent 90d953358b68936b4791b8db205b3a5918b1b7a5
Author: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>
Date: Thu, 7 Mar 2019 20:26:32 +0100
Use writer lock for cancel.
Diffstat:
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/encode_stream.go b/encode_stream.go
@@ -125,14 +125,15 @@ func (s *StreamEncoder) Value(key interface{}) interface{} {
//
// After calling cancel, Done() will return a closed channel.
func (s *StreamEncoder) Cancel(err error) {
- s.mux.RLock()
+ s.mux.Lock()
+ defer s.mux.Unlock()
+
select {
case <-s.done:
default:
s.err = err
close(s.done)
}
- s.mux.RUnlock()
}
// AddObject adds an object to be encoded.