当前位置: 首页>>代码示例>>Golang>>正文


Golang Call.Done方法代码示例

本文整理汇总了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)
	}
}
开发者ID:dreyk,项目名称:dtests,代码行数:26,代码来源:master.go


注:本文中的net/rpc.Call.Done方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。