code: def test_program_stopper(self, use_wm_v2):
      FLAGS.lp_worker_manager_v2 = use_wm_v2
      # This verifies the program stopper works for test_multi_threading
      p = lp_program.Program("test")
  
      with p.group("block"):
          p.add_node(python.PyNode(_block))
  
      with p.group("stop"):
          p.add_node(
              python.PyNode(
                  _stop,
                  program_stopper.make_program_stopper(
                      context.LaunchType.TEST_MULTI_THREADING
                  ),
              )
          )
  
      threads = launch.launch(p, test_case=self)
      threads.wait()
  
imports: import signal
  import threading
  from absl import flags
  from absl.testing import absltest
  from absl.testing import parameterized
  from launchpad import context
  from launchpad import program
  from launchpad.launch import serialization_test
  from launchpad.launch.test_multi_threading import launch
  from launchpad.nodes.python import node
  from launchpad.program_stopper import program_stopper
  import mock
label_desc: Use image node_id 5 for calling the LaunchTest obj's underlying member method code with example usage: obj.test_program_stopper(use_wm_v2) without return types