

def start_servers(self, msg_runner):
    "Start RPC servers.\n\n        Start up 2 separate servers for handling inter-cell\n        communication via RPC.  Both handle the same types of\n        messages, but requests/replies are separated to solve\n        potential deadlocks. (If we used the same queue for both,\n        it's possible to exhaust the RPC thread pool while we wait\n        for replies.. such that we'd never consume a reply.)\n        "
    topic_base = CONF.cells.rpc_driver_queue_base
    proxy_manager = InterCellRPCDispatcher(msg_runner)
    for msg_type in msg_runner.get_message_types():
        target = messaging.Target(topic=('%s.%s' % (topic_base, msg_type)), server=CONF.host)
        server = rpc.get_server(target, endpoints=[proxy_manager])
        server.start()
        self.rpc_servers.append(server)

dataset/ETHPy150Open BU-NU-CLOUD-SP16/Trusted-Platform-Module-nova/nova/cells/rpc_driver.py CellsRPCDriver.start_servers/original