Skip to content

Commit 95a75b2

Browse files
committed
'defer' are executed in the reverse of the order in which they were deferered
1 parent 9371f4f commit 95a75b2

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

6.824-golabs-2018/src/raft/raft.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,8 @@ func (rf *Raft) AppendEntries(args *AppendEntriesArgs, reply *AppendEntriesReply
190190
// discard out of date AppendEntries
191191
DPrintf("[%d:%d] Recv AppendEntries with %d log\n", rf.me, rf.currentTerm, len(args.Entries))
192192
rf.mu.Lock()
193-
defer rf.persist()
194193
defer rf.mu.Unlock()
194+
defer rf.persist()
195195

196196
if args.Term < rf.currentTerm {
197197
reply.Term = rf.currentTerm
@@ -283,8 +283,8 @@ type RequestVoteReply struct {
283283
func (rf *Raft) RequestVote(args *RequestVoteArgs, reply *RequestVoteReply) {
284284
// Your code here (2A, 2B).
285285
rf.mu.Lock()
286-
defer rf.persist()
287286
defer rf.mu.Unlock()
287+
defer rf.persist()
288288
reply.VoteGranted = false
289289
DPrintf("[%d:%d] Recv RequestVote from %d Term: %d\n", rf.me, rf.currentTerm, args.CandidateID, args.Term)
290290
if args.Term < rf.currentTerm {
@@ -376,8 +376,8 @@ func (rf *Raft) Start(command interface{}) (int, int, bool) {
376376
return index, term, false
377377
}
378378
rf.mu.Lock()
379-
defer rf.persist()
380379
defer rf.mu.Unlock()
380+
defer rf.persist()
381381
log := LogEntry{
382382
Term: rf.currentTerm,
383383
Cmd: command,

0 commit comments

Comments
 (0)