code: def on_ready(self) -> Iterator[Stream]:
      with self.array.device:
          stream = get_current_stream()
          stream.wait_event(self.ready)
          yield stream
  
file_path: cupy/cupyx/distributed/array/_data_transfer.py
imports: import contextlib
  import dataclasses
  from typing import Any, Iterable, Iterator
  from cupy._core.core import ndarray
  import cupy._creation.from_data
  import cupy._creation.basic
  from cupy.cuda.device import Device
  from cupy.cuda.stream import Event
  from cupy.cuda.stream import Stream
  from cupy.cuda.stream import get_current_stream
  from cupy.cuda import nccl
  from cupyx.distributed._nccl_comm import _get_nccl_dtype_and_count
label_desc: Use image node_id 2 for calling the _AsyncData obj's underlying member method code with example usage: obj.on_ready() without return types