def METHOD_NAME(self):
    # Call rpc_async + fut.wait() in torchscript function and ensure that
    # timeout is raised.
    if self.rank != 0:
        return
    dst_worker_name = worker_name((self.rank + 1) % self.world_size)
    args = (torch.tensor([1, 1]), torch.tensor([2, 2]))
    kwargs = {
        "first_kwarg": torch.tensor([2, 2]),
        "second_kwarg": torch.tensor([3, 3]),
    }
    expected_error = self.get_timeout_error_regex()
    # Ensure that we get a timeout if we override the default timeout and
    # the RPC takes longer to execute.
    with self.assertRaisesRegex(RuntimeError, expected_error):
        rpc_async_call_with_timeout(dst_worker_name, args, kwargs, 0.5)
    # Ensure that we timeout if we don't specify a timeout but the default
    # is less than the RPC takes to execute.
    rpc._set_rpc_timeout(0.001)
    with self.assertRaisesRegex(RuntimeError, expected_error):
        script_rpc_async_call(
            dst_worker_name, args, kwargs
        )
    # Ensure that we run to completion if zero timeout is specified.
    ret = rpc_async_call_with_timeout(dst_worker_name, args, kwargs, 0)
    self.assertEqual(ret, torch.tensor([8, 8]))
    # reset for clean shutdown
    rpc._set_rpc_timeout(rpc.constants.DEFAULT_RPC_TIMEOUT_SEC)