summaryrefslogtreecommitdiffstats
path: root/encoding.go
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--encoding.go13
1 files changed, 9 insertions, 4 deletions
diff --git a/encoding.go b/encoding.go
index fe376b2..a8778ab 100644
--- a/encoding.go
+++ b/encoding.go
@@ -121,6 +121,7 @@ func (d *decoder) DecodeTime() (time.Time, error) {
if t.IsZero() {
t = zero[time.Time]()
}
+
return t, nil
}
@@ -231,17 +232,21 @@ func (d *decoder) DecodeStore(s *store) error {
}
func (s *store) Snapshot(w io.WriteSeeker) error {
- s.Lock.Lock()
- defer s.Lock.Unlock()
+ s.Lock.RLock()
+ defer s.Lock.RUnlock()
if _, err := w.Seek(0, io.SeekStart); err != nil {
return err
}
wr := newEncoder(w)
- defer wr.Flush()
- return wr.EncodeStore(s)
+ err := wr.EncodeStore(s)
+ if err != nil {
+ return err
+ }
+
+ return wr.Flush()
}
func (s *store) LoadSnapshot(r io.ReadSeeker) error {