【发布时间】:2021-05-31 18:31:57
【问题描述】:
我正在尝试使用一个远程过程,它将在一个结构中设置一个回复,一个布尔状态和一个字符串作为下一个输入。 在该过程中,我将布尔状态设置为 true 并将一个值放入输入中。 但是在客户端,它会得到一个错误的状态和空字符串。 在程序中:
func(c *Coordinator)MapJob(req mr.MapRequest, reply *mr.MapResponse) error {
//logic to set up response...
reply = &mr.MapResponse{
Status: newStatus,
Input: newIn,
}
fmt.Printf("[REPLY] %+v\n", reply)
return nil
}
打印[REPLY] &{Status:true Input:1.txt}
在客户端时:
err := client.Call("Coordinator.MapJob", req, &reply)
fmt.Printf("reply from procedure %+v\n", reply)
打印:reply from procedure {Status:false Input:}
我在这里缺少什么? 我已经把整个代码放在https://github.com/Brotchu/ProjectMR 该过程在协调器中定义,在工作者中定义客户端。 在这里粘贴可能太多了。
【问题讨论】: