yzongyue / 6.824-golabs-2020

MIT 6.824 2020
415 stars 94 forks source link

lab1 mapreduce源码疑问 #4

Closed cwr31 closed 3 years ago

cwr31 commented 3 years ago

`func (m Master) ReportTask(args ReportTaskArgs, reply *ReportTaskReply) error { m.mu.Lock() defer m.mu.Unlock()

DPrintf("get report task: %+v, taskPhase: %+v", args, m.taskPhase)

if m.taskPhase != args.Phase || args.WorkerId != m.taskStats[args.Seq].WorkerId {
    return nil
}

if args.Done {
    m.taskStats[args.Seq].Status = TaskStatusFinish
} else {
    m.taskStats[args.Seq].Status = TaskStatusErr
}

go m.schedule()
return nil

}`

请问其中go m.schedule()的作用是什么? 为什么ReportTask后,tickSchedule就会不继续tick了呢?

cwr31 commented 3 years ago

sorry my fault