Tears down the instance, removing any remaining sessions that this instance has created.

        The instance must not be used after this method has been called.

def teardown(self):
        """
        Tears down the instance, removing any remaining sessions that this instance has created.

        The instance must not be used after this method has been called.
        """
        with self._teardown_lock:
            if not self._teardown_called:
                self._teardown_called = True
                if len(self._acquiring_session_ids) > 0:
                    logger.info(
                        f"Destroying all sessions that have not acquired keys: {self._acquiring_session_ids}...")
                for session_id in self._acquiring_session_ids:
                    try:
                        self.consul_client.session.destroy(session_id=session_id)
                        logger.debug(f"Destroyed: {session_id}")
                    except requests.exceptions.ConnectionError as e:
                        logger.debug(f"Exception: {e}")
                        logger.warning(f"Could not connect to Consul to clean up session {session_id}")
                atexit.unregister(self.teardown)