'Idempotently forget a PID.  It\'s okay if the PID is no longer in our
data structure (it could have been removed by the "orphan port" removal
in :py:meth:`new_worker_socks`).
:param int pid: The PID which exited.'

def forget_pid(self, pid):

    port_server_idx = self._pid_to_port_and_index(pid)
    if (port_server_idx is None):
        return
    (dead_port, server_idx) = port_server_idx
    self.logger.error('Removing    dead    child    %d    (PID:    %s)    for    port    %s', server_idx, pid, dead_port)
    self.sock_data_by_port[dead_port]['pids'][server_idx] = None
