Explorar o código

wal/wal.go: modified WAL.SaveSnapshot to do the Marshal before aquiring the mutex

Vimal Kumar %!s(int64=9) %!d(string=hai) anos
pai
achega
f4ec303d1b
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      wal/wal.go

+ 2 - 1
wal/wal.go

@@ -567,10 +567,11 @@ func (w *WAL) Save(st raftpb.HardState, ents []raftpb.Entry) error {
 }
 
 func (w *WAL) SaveSnapshot(e walpb.Snapshot) error {
+	b := pbutil.MustMarshal(&e)
+
 	w.mu.Lock()
 	defer w.mu.Unlock()
 
-	b := pbutil.MustMarshal(&e)
 	rec := &walpb.Record{Type: snapshotType, Data: b}
 	if err := w.encoder.encode(rec); err != nil {
 		return err