本文整理汇总了Golang中net/rpc.Call.Done方法的典型用法代码示例。如果您正苦于以下问题:Golang Call.Done方法的具体用法?Golang Call.Done怎么用?Golang Call.Done使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类net/rpc.Call
的用法示例。
在下文中一共展示了Call.Done方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Go
func (master *Master) Go(cookie string, userServiceMethod string, args interface{}, reply interface{}, done chan *rpc.Call) *rpc.Call {
serviceMethod := "User." + userServiceMethod
if slave, err := master.getStartedSlave(cookie); err != nil {
call := new(rpc.Call)
call.ServiceMethod = serviceMethod
call.Args = args
call.Reply = reply
if done == nil {
done = make(chan *rpc.Call, 10) // buffered.
} else {
// If caller passes done != nil, it must arrange that
// done has enough buffer for the number of simultaneous
// RPCs that will be using that channel. If the channel
// is totally unbuffered, it's best not to run at all.
if cap(done) == 0 {
log.Panic("rpc: done channel is unbuffered")
}
}
call.Done = done
call.Error = err
call.Done <- call
return call
} else {
return slave.conn.Go(serviceMethod, args, reply, done)
}
}