def multicall(conf, context, topic, msg, timeout, connection_pool):
 LOG.debug(_('Making synchronous call on %s ...'), topic)
 msg_id = uuid.uuid4().hex
 msg.update({'_msg_id': msg_id})
 LOG.debug((_('MSG_ID is %s') % msg_id))
 _add_unique_id(msg)
 pack_context(msg, context)
 with _reply_proxy_create_sem:
  if (not connection_pool.reply_proxy):
   connection_pool.reply_proxy = ReplyProxy(conf, connection_pool)
 msg.update({'_reply_q': connection_pool.reply_proxy.get_reply_q()})
 wait_msg = MulticallProxyWaiter(conf, msg_id, timeout, connection_pool)
 with ConnectionContext(conf, connection_pool) as conn:
  conn.topic_send(topic, rpc_common.serialize_msg(msg), timeout)
 return wait_msg

def multicall ( conf , context , topic , msg , timeout , connection_pool ) : LOG . debug ( _ ( 'Making synchronous call on %s ...' ) , topic ) msg_id = uuid . uuid4 ( ) . hex msg . update ( { '_msg_id' : msg_id } ) LOG . debug ( ( _ ( 'MSG_ID is %s' ) % msg_id ) ) _add_unique_id ( msg ) pack_context ( msg , context ) with _reply_proxy_create_sem : if ( not connection_pool . reply_proxy ) : connection_pool . reply_proxy = ReplyProxy ( conf , connection_pool ) msg . update ( { '_reply_q' : connection_pool . reply_proxy . get_reply_q ( ) } ) wait_msg = MulticallProxyWaiter ( conf , msg_id , timeout , connection_pool ) with ConnectionContext ( conf , connection_pool ) as conn : conn . topic_send ( topic , rpc_common . serialize_msg ( msg ) , timeout ) return wait_msg
make a call that returns multiple times .