code: def test_dist_neighbor_sampler_hetero(tmp_path, disjoint):
      mp_context = torch.multiprocessing.get_context("spawn")
      with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
          s.settimeout(1)
          s.bind(("127.0.0.1", 0))
          port = s.getsockname()[1]
  
      world_size = 2
      data = FakeHeteroDataset(
          num_graphs=1,
          avg_num_nodes=100,
          avg_degree=3,
          num_node_types=2,
          num_edge_types=4,
          edge_dim=2,
      )[0]
  
      partitioner = Partitioner(data, world_size, tmp_path)
      partitioner.generate_partition()
  
      w0 = mp_context.Process(
          target=dist_neighbor_sampler_hetero,
          args=(data, tmp_path, world_size, 0, port, "v0", disjoint),
      )
  
      w1 = mp_context.Process(
          target=dist_neighbor_sampler_hetero,
          args=(data, tmp_path, world_size, 1, port, "v1", disjoint),
      )
  
      w0.start()
      w1.start()
      w0.join()
      w1.join()
  
imports: import atexit
  import socket
  from typing import Optional
  import pytest
  import torch
  from torch_geometric.data import Data
  from torch_geometric.datasets import FakeHeteroDataset
  from torch_geometric.distributed import DistNeighborSampler, LocalFeatureStore, LocalGraphStore, Partitioner
  from torch_geometric.distributed.dist_context import DistContext
  from torch_geometric.distributed.event_loop import ConcurrentEventLoop
  from torch_geometric.distributed.partition import load_partition_info
  from torch_geometric.distributed.rpc import init_rpc, shutdown_rpc
  from torch_geometric.sampler import NeighborSampler, NodeSamplerInput
  from torch_geometric.sampler.neighbor_sampler import node_sample
  from torch_geometric.testing import onlyLinux, withPackage
label_desc: Use image node_id 10 for calling a global function with example usage: test_dist_neighbor_sampler_hetero(tmp_path, disjoint) without return types