code: def wait_for_child_and_forward_all_signals(child_pid, process_name):
      
      assert _HAS_SIGWAIT
      block_all_signals()
  
      while True:
          logging.debug("Waiting for signals")
          signum = signal.sigwait(_ALL_SIGNALS)
          if signum == signal.SIGCHLD:
              pid, exitcode, ru_child = os.wait4(-1, os.WNOHANG)
              while pid != 0:
                  if pid == child_pid:
                      return exitcode, ru_child
                  else:
                      logging.debug("Received unexpected SIGCHLD for PID %s", pid)
                  pid, exitcode, ru_child = os.wait4(-1, os.WNOHANG)
  
          else:
              _forward_signal(signum, child_pid, process_name)
docs: Wait for a child to terminate and in the meantime forward all signals the current process
      receives to this child.
      @return a tuple of exit code and resource usage of the child as given by os.waitpid