code: def test_context_manager_shutdown(self):
      with futures.ThreadPoolExecutor(max_workers=5) as e:
          executor = e
          self.assertEqual(
              list(e.map(abs, range(-5, 5))),
              [5, 4, 3, 2, 1, 0, 1, 2, 3, 4],
          )
  
      for t in executor._threads:
          t.join()
  
imports: import signal
  import sys
  import threading
  import time
  import unittest
  from concurrent import futures
  from test import support
  from test.support.script_helper import assert_python_ok
  from .util import BaseTestCase, ThreadPoolMixin, ProcessPoolForkMixin, ProcessPoolForkserverMixin, ProcessPoolSpawnMixin, create_executor_tests, setup_module
label_desc: Use image node_id 2 for calling the ThreadPoolShutdownTest obj's underlying member method code with example usage: obj.test_context_manager_shutdown() without return types